Saya mengedit beberapa file BibTeX, dan saya secara teratur melupakan tanda koma:
Sebagai contoh:
@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}
}
Anda akan melihat bahwa saya lupa menambahkan koma setelahnya keywords = {about}
, yang berarti saya harus menghabiskan waktu debugging. Apakah ada cara Vim bisa membuat saya ingat? Omong-omong, saya punya plugin bib_autocomp.vim ...
autocompletion
Kristian Nordestgaard
sumber
sumber
:%s/[^ ,]\zs\ze\n\s*[^ }]/,/
.Jawaban:
Solusi cepat dan kotor:
Anda juga dapat membuat sintaks khusus untuk file BibTeX menggunakan pola yang sama.
Beberapa penjelasan tentang ekspresi reguler yang digunakan:
^\s\+
mencari kata kunci indentasi.\ze
menghentikan pencocokan pola sedemikian rupa sehingga baris berikutnya tidak ditandai.,\@<!\n
mencari baris yang tidak berakhir dengan koma.\n\s\+\w
menjamin bahwa ada entri baru setelah sedang dipindai.Pola yang sama dapat digunakan untuk melompat di antara garis yang salah menggunakan
vimgrep
sebagai berikut:Jika jendela perbaikan cepat tidak terbuka secara otomatis, itu bisa dibuka menggunakan
:copen
. Dan:cnext
dan:cprevious
dapat digunakan untuk melompat di antara kesalahan.sumber
Salah satu kemungkinan adalah mendefinisikan
.vimrc
pintasan untuk menambahkan yang hilang,
Contoh:
dan gunakan
\q
sebelum pergi atau ketika debugging.sumber
E10: \ should be followed by /, ? or & 24,1 60%
, tapi mungkin saya salah melakukannya?.vimrc
kita harus menghapus inisial ":". Silakan cobamap \q :%s/\v([}"])(\s*\n\s*\S+\s*\=)/\1,\2/e<CR><CR>