J'édite pas mal de fichiers BibTeX, et j'oublie régulièrement les virgules de fin:
Par exemple:
@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}
}
Vous verrez que j'ai oublié d'ajouter la virgule après keywords = {about}
, ce qui signifie que je dois passer du temps à déboguer. Y a-t-il un moyen pour Vim de me rappeler? Au fait, j'ai le plugin bib_autocomp.vim ...
autocompletion
Kristian Nordestgaard
la source
la source
:%s/[^ ,]\zs\ze\n\s*[^ }]/,/
.Réponses:
Solution rapide et sale:
Vous pouvez également créer une syntaxe spéciale pour les fichiers BibTeX en utilisant le même modèle.
Quelques explications sur l'expression régulière utilisée:
^\s\+
recherche des mots clés en retrait.\ze
arrête la correspondance du motif de sorte que la ligne suivante ne soit pas marquée.,\@<!\n
recherche les lignes ne se terminant pas par une virgule.\n\s\+\w
garantit qu'il y a une nouvelle entrée après la numérisation en cours.Le même modèle peut être utilisé pour sauter entre des lignes erronées en utilisant
vimgrep
comme suit:Si la fenêtre de correction rapide ne s'ouvre pas automatiquement, elle peut être ouverte à l'aide de
:copen
. Et:cnext
et:cprevious
peut être utilisé pour sauter entre les erreurs.la source
Une possibilité consiste à définir un
.vimrc
raccourci pour ajouter les éléments manquants,
Exemple:
et utiliser
\q
avant de quitter ou lors du débogage.la source
E10: \ should be followed by /, ? or & 24,1 60%
, mais je me trompe peut-être?.vimrc
nous devons supprimer le ":" initial. Veuillez essayermap \q :%s/\v([}"])(\s*\n\s*\S+\s*\=)/\1,\2/e<CR><CR>