我编辑了很多BibTeX文件,但我经常忘记结尾的逗号:

例如:忘记在keywords = {about}之后添加逗号,这意味着我不得不花时间调试。 Vim有什么办法可以让我记住?顺便说一下,我有bib_autocomp.vim插件...

评论

这不是我所知道的,但是您可以尝试使用以下方法修复它::%s / [^,] \ zs \ ze \ n \ s * [^}] /,/ ..

#1 楼

快速而肮脏的解决方案:

:match Error /^\s\+.*,\@<!\ze\n\s\+\w/


您也可以使用相同的模式为BibTeX文件创建特殊的语法。

使用过的一些解释正则表达式:



^\s\+搜索缩进的关键字。

\ze停止模式匹配,以便不标记下一行。

,\@<!\n搜索不以逗号结尾的行。

\n\s\+\w保证当前正在扫描的行之后有一个新条目。

可以使用相同的模式用于使用vimgrep在错误的行之间跳转,如下所示:

:vimgrep /^\s\+.*,\@<!\ze\n\s\+\w/ %


如果快速修复窗口未自动打开,则可以使用:copen打开它。并且:cnext:cprevious可用于在错误之间跳转。

评论


很好!当我按n时,是否可以使它跳到下一个错误?

–克里斯蒂安(Kristian Nordestgaard)
15-10-25在14:56

我已经更新了答案,以包括您的要求。看看是否适合您。

–游客
15-10-25在19:38

#2 楼

一种可能性是定义一个.vimrc快捷方式以添加缺少的,

评论


不为我工作?我得到E10:\应该跟/ ,?或&24,1 60%,但也许我做错了吗?

–克里斯蒂安(Kristian Nordestgaard)
15-10-25在14:55

@KristianNordestgaard,在.vimrc中,必须删除初始的“:”。请尝试映射\ q:%s / \ v([}“])(\ s * \ n \ s * \ S + \ s * \ =)/ \ 1,\ 2 / e

– JJoao
2015年10月25日在17:31