处理合并冲突时,DCVS 插入的
>>>>>>
和 ======
对于我所在的文件来说在语法上是不正确的,并且显示为红色突出显示,这是很常见的。在处理合并冲突时,使用命令跳转到这些错误会很有用。当我输入 :cnext
时,我只收到消息“无错误”。这些是 Mercurial 合并冲突,所以我不能使用 Fugitive,但我通常更喜欢手动编辑合并冲突。
有没有办法跳转到文件中的下一个语法错误?我认为这些错误是由语法突出显示文件决定的。
您可以使用
:lopen
打开包含错误/警告行的窗口。之后,导航到它们中的每一个。
实际的答案是,如果你有
vim-,你可以使用
:lnext
跳转到下一个错误,或者
:lprev
,或者 ]l 和 [l (那些是小写的 L)不受影响,你这样做,因为没有它你就不应该使用 Vim。
这实际上不会跳转到下一个红色/错误突出显示的文本组,但会跳转到语法插件指示的任何错误(并填充位置列表)。在 Vim 中跳转到特定的突出显示组是“不可能”的,因为还没有人费心去弄清楚如何实现。 插件 SRDispHiGrp 很接近,但如果你无法从名称中看出,对于人类使用来说太复杂和混乱。
:cnext
:cnext
和 :cprevious
是 Vim QuickFix 命令;您可以通过使用使用 QuickFix 模式的代码验证插件来利用它们,例如用于 Python 的
pyflakes.vim和用于 JavaScript 的
jslint.vim/jshint.vim。 这将导致语法错误被标记为波浪状的红色下划线,而不是我相信您看到的纯红色语法错误突出显示。然后,您应该能够使用
:cnext
和 :cprevious
跳到下一个和上一个标记的错误。
您可以使用 ]s(向后)或 [s(向前),具体取决于您要查找下一个错误的方向。你需要处于正常模式才能工作,但这只是在 vim 中构建的,不需要扩展。
:cn
:cp
- 上一页
:cl
- 列表
我可能会迟到,但我制作了一个 neovim 插件,因为这真的很困扰我。如果你愿意的话你可以测试一下。它的工作原理很像 emacs 编译模式。