44

在处理合并冲突时,通常DCVS 插入的>>>>>>和对于我所在的文件在语法上不正确,并以红色突出显示。======在处理合并冲突时,使用命令跳转到这些错误会很有用。当我键入时,:cnext我只会收到“无错误”消息。这些是 Mercurial 合并冲突,所以我不能使用 Fugitive,但我通常更喜欢手动编辑合并冲突。

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

4

4 回答 4

62

您可以使用:lopen打开包含错误/警告行的窗口。之后,导航到它们中的每一个。

实际的答案是,如果你有vim-unimpaired:lnext ,你可以使用它跳转到下一个错误,或者:lprev,或者]land [l(那些是小写的 Ls),因为你不应该在没有它的情况下使用 Vim。

这实际上不会跳转到下一个红色/错误突出显示的文本组,但会跳转到您的语法插件指示的任何错误(并填充位置列表)。在 Vim中不可能跳转到特定的高亮组,因为还没有人费心去弄清楚如何。

插件SRDispHiGrp 很接近,但如果你无法从名称中分辨出来,那么它对于人类使用来说太令人费解和混乱了。

于 2012-10-27T04:46:09.083 回答
14

我认为你在正确的轨道上:cnext

:cnext并且:cprevious是 Vim QuickFix 命令;您可以通过使用使用 QuickFix 模式的代码验证插件来利用它们,例如用于 Python 的pyflakes.vim和用于 JavaScript 的jslint.vim / jshint.vim 。

这将导致语法错误用波浪形的红色下划线标记,而不是我相信您看到的纯红色语法错误突出显示。然后,您应该能够使用:cnext:cprevious跳到下一个和上一个标记的错误。

于 2011-12-12T22:47:45.850 回答
1

:cn- 下一个编译器消息

:cp- 以前的

:cl- 列表

于 2018-11-08T18:08:24.907 回答
0

您可以使用 ]s(向后)或 [s(向前),具体取决于您要查找下一个错误的方向。您需要处于正常模式才能使其工作,但这只是在 vim 中构建的,不需要扩展。

于 2021-08-13T09:42:18.107 回答