跳转到下一个错误/代码以红色突出显示

问题描述 投票:0回答:5

处理合并冲突时,DCVS 插入的

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

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

vim syntax keyboard-shortcuts merge-conflict-resolution
5个回答
74
投票

您可以使用

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

实际的答案是,如果你有

vim-,你可以使用 
:lnext
 跳转到下一个错误,或者 
:lprev,或者 ]l[l (那些是小写的 L)不受影响,你这样做,因为没有它你就不应该使用 Vim。

这实际上不会跳转到下一个红色/错误突出显示的文本组,但会跳转到语法插件指示的任何错误(并填充位置列表)。在 Vim 中跳转到特定的突出显示组是“不可能”的,因为还没有人费心去弄清楚如何实现。 插件 SRDispHiGrp 很接近,但如果你无法从名称中看出,对于人类使用来说太复杂和混乱。

我认为您的方向是正确的

:cnext

16
投票

:cnext

:cprevious

是 Vim QuickFix 命令;您可以通过使用使用 QuickFix 模式的代码验证插件来利用它们,例如用于 Python 的

pyflakes.vim
和用于 JavaScript 的
jslint.vim
/jshint.vim 这将导致语法错误被标记为波浪状的红色下划线,而不是我相信您看到的纯红色语法错误突出显示。然后,您应该能够使用 :cnext

:cprevious

跳到下一个和上一个标记的错误。

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


2
投票

:cn

2
投票

:cp
- 上一页

:cl
- 列表

我可能会迟到,但我制作了一个 neovim 插件,因为这真的很困扰我。如果你愿意的话你可以测试一下。它的工作原理很像 emacs 编译模式。


0
投票
错误跳转.nvim

© www.soinside.com 2019 - 2024. All rights reserved.