跳转到下一个错误/红色高亮代码

45
处理合并冲突时,常见问题是DCVS插入的>>>>>>======语法不正确,因此在文件中突出显示为红色。在处理合并冲突时,有一些命令可以跳转到这些错误点,例如输入:cnext命令,但返回"No Errors"消息。因为这些是Mercurial的合并冲突,所以不能使用Fugitive,但我通常更喜欢手动编辑合并冲突。

是否有方法可以跳转到文件中的下一个语法错误?我认为这些错误由语法高亮文件决定。

4个回答

68
您可以使用 :lopen 打开包含错误/警告行的窗口。之后,依次导航到它们。
实际答案是,如果您安装了 vim-unimpaired 插件(因为您不应该没有它),则可以使用 :lnext 跳转到下一个错误,或者使用 :lprev]l[l(这些是小写的Ls)。
这将不会实际跳转到下一个红色/错误高亮文本组,而是跳转到您的语法插件规定为错误(并填充位置列表)的任何内容。在 Vim 中无法跳转到特定的高亮组,因为还没有人想出如何做到这一点。
插件 SRDispHiGrp 接近实现这一功能,但如果您不能从名称中看出来,它对人类使用来说太过复杂和混乱。

16

我认为你用:cnext是正确的。

:cnext:cprevious是Vim的快速修复命令,你可以利用它们使用一个使用QuickFix模式的代码验证插件,比如pyflakes.vim,用于Python,以及jslint.vim/jshint.vim用于JavaScript。

这将使语法错误标记为波浪形红色下划线,而不是我认为你看到的实心红色语法错误高亮。然后,你可以使用:cnext:cprevious跳到下一个和上一个标记的错误。


1

:cn - 下一个编译器消息

:cp - 上一个

:cl - 列表


0

在查找下一个错误时,您可以使用 ]s(向后)或 [s(向前),具体取决于您想要前进的方向。但是,这需要您处于正常模式,但这只是 Vim 中内置的功能,不需要扩展程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接