【问题标题】:Jump to next error / code highlighted in red跳转到下一个错误/代码以红色突出显示
【发布时间】:2011-06-15 17:27:38
【问题描述】:
在处理合并冲突时,DCVS 插入的 >>>>>> 和 ====== 对于我所在的文件在语法上不正确并显示为红色突出显示是很常见的。在处理合并冲突时,使用命令跳转到这些错误会很有用。当我输入:cnext 时,我只会收到“无错误”消息。这些是 Mercurial 合并冲突,所以我不能使用 Fugitive,但我通常更喜欢手动编辑合并冲突。
有没有办法跳转到文件中的下一个语法错误?我认为这些错误是由语法高亮文件决定的。
【问题讨论】:
标签:
vim
syntax
keyboard-shortcuts
merge-conflict-resolution
【解决方案1】:
您可以使用:lopen 打开包含错误/警告行的窗口。之后,导航到它们中的每一个。
实际答案是可以使用:lnext跳转到下一个错误,或者:lprev,或者]l和[ kbd>l(那些是小写的 Ls)如果你有 vim-unimpaired,你会这样做,因为你不应该在没有它的情况下使用 Vim。
这将不会真正跳转到下一个红色/错误突出显示的文本组,但会跳转到您的语法插件指示的任何错误(并填充位置列表)。在 Vim 中不可能跳转到特定的突出显示组,因为还没有人费心去弄清楚如何。
插件SRDispHiGrp 很接近,但是如果你不能从名字上看出来,它对于人类使用来说太令人费解和混乱了。
【解决方案2】:
我认为您与:cnext 走在正确的轨道上。
:cnext 和 :cprevious 是 Vim QuickFix 命令;您可以通过使用使用 QuickFix 模式的代码验证插件来利用它们,例如用于 Python 的 pyflakes.vim 和用于 JavaScript 的 jslint.vim/jshint.vim。
这将导致语法错误用波浪形的红色下划线标记,而不是我相信您看到的纯红色语法错误突出显示。然后您应该可以使用:cnext 和:cprevious 跳到下一个和上一个标记的错误。
【解决方案3】:
:cn - 下一条编译器消息
:cp - 以前的
:cl - 列表
【解决方案4】:
您可以使用 ]s(向后)或 [s(向前),具体取决于您要查找下一个错误的方向。你需要在正常模式下才能工作,但这只是在 vim 中构建的,不需要扩展。