Edytuję sporo plików BibTeX i regularnie zapominam o końcowych przecinkach:
Na przykład:
@Book{cooke2015british,
author = {Cooke, Lez},
title = {British Television Drama},
publisher = {Palgrave on behalf of the British Film Institute},
year = {2015},
keywords = {about}
address = {London},
isbn = {978-1844576234}
}
Zobaczysz, że zapomniałem dodać przecinek po keywords = {about}
, co oznacza, że muszę poświęcić czas na debugowanie. Czy Vim może sprawić, żebym zapamiętał? Nawiasem mówiąc, mam wtyczkę bib_autocomp.vim ...
autocompletion
Kristian Nordestgaard
źródło
źródło
:%s/[^ ,]\zs\ze\n\s*[^ }]/,/
.Odpowiedzi:
Szybkie i brudne rozwiązanie:
Możesz również utworzyć specjalną składnię dla plików BibTeX przy użyciu tego samego wzorca.
Niektóre objaśnienia zastosowanego wyrażenia regularnego:
^\s\+
wyszukuje wcięte słowa kluczowe.\ze
zatrzymuje dopasowywanie wzorca, tak że następny wiersz nie jest zaznaczony.,\@<!\n
wyszukuje wiersze nie kończące się przecinkiem.\n\s\+\w
gwarantuje, że po zeskanowaniu jest nowy wpis.Ten sam wzór może być używany do przeskakiwania między błędnymi liniami
vimgrep
w następujący sposób:Jeśli okno szybkiego dostępu nie otworzy się automatycznie, można je otworzyć za pomocą
:copen
. A:cnext
i:cprevious
może być używany do skoku pomiędzy błędami.źródło
Jedną z możliwości jest zdefiniowanie
.vimrc
skrótu, aby dodać brakujące,
Przykład:
i użyj
\q
przed wyjściem lub podczas debugowania.źródło
E10: \ should be followed by /, ? or & 24,1 60%
, ale może robię to źle?.vimrc
musimy usunąć początkowe „:”. Spróbujmap \q :%s/\v([}"])(\s*\n\s*\S+\s*\=)/\1,\2/e<CR><CR>