Ich bearbeite einige BibTeX-Dateien und vergesse regelmäßig die nachfolgenden Kommas:
Beispielsweise:
@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}
}
Sie werden sehen, dass ich vergessen habe, das Komma danach hinzuzufügen keywords = {about}
, was bedeutet, dass ich Zeit mit dem Debuggen verbringen muss. Gibt es eine Möglichkeit, wie Vim mich daran erinnern kann? Übrigens habe ich das Plugin bib_autocomp.vim ...
autocompletion
Kristian Nordestgaard
quelle
quelle
:%s/[^ ,]\zs\ze\n\s*[^ }]/,/
.Antworten:
Schnelle und schmutzige Lösung:
Sie können auch eine spezielle Syntax für BibTeX-Dateien mit demselben Muster erstellen.
Einige Erklärungen zum verwendeten regulären Ausdruck:
^\s\+
sucht nach eingerückten Schlüsselwörtern.\ze
Stoppt den Mustervergleich, sodass die nächste Zeile nicht markiert ist.,\@<!\n
sucht nach Zeilen, die nicht mit einem Komma enden.\n\s\+\w
garantiert, dass nach dem aktuell gescannten Eintrag ein neuer Eintrag vorhanden ist.Das gleiche Muster kann verwendet werden, um
vimgrep
wie folgt zwischen fehlerhaften Zeilen zu springen :Wenn das Quickfix-Fenster nicht automatisch geöffnet wird, kann es mit geöffnet werden
:copen
. Und:cnext
und:cprevious
kann verwendet werden, um zwischen Fehlern zu springen.quelle
Eine Möglichkeit besteht darin, eine
.vimrc
Verknüpfung zu definieren , um die fehlenden hinzuzufügen,
Beispiel:
und
\q
vor dem Verlassen oder beim Debuggen verwenden.quelle
E10: \ should be followed by /, ? or & 24,1 60%
, aber vielleicht mache ich es falsch?.vimrc
wir das anfängliche ":" entfernen. Bitte versuchen Siemap \q :%s/\v([}"])(\s*\n\s*\S+\s*\=)/\1,\2/e<CR><CR>