高亮显示 VIM 中的任意行

Ran*_*son 5 vim syntax-highlighting highlight

在程序的执行过程中,我一般会插入很多追加代码行,主要是打印命令,帮助我理解和调试执行的程序。不幸的是,我经常忘记哪些行来自代码,哪些是附加的,应该在一段时间后删除。对于大型程序,这个问题会变得更糟。

好吧,我发现这篇文章教如何保持任意用户选择的行突出显示(请参阅部分:光标移动后保持突出显示)。文章给出的解决方法是在.vimrc中包含如下代码:

:nnoremap <silent> <Leader>l ml:execute 'match Search /\%'.line('.').'l/'<CR>
Run Code Online (Sandbox Code Playgroud)

所以,每次当我按下\l 时,当前行都被高亮显示并保持不变,而前一个高亮的行,如果有,则不高亮。

这不是我想要的行为。相反,我希望能够根据需要突出显示任意数量的任意行,而无需取消突出显示先前突出显示的行。如果可能的话,使用像\l这样的独特命令。

有人知道解决方案吗?

提前致谢。

编辑

yolenoyer提出的命令解决了最初的问题。但是,现在提出了另一个问题。以下命令:

:call clearmatches()
Run Code Online (Sandbox Code Playgroud)

建议清理突出显示的线条会清理所有线条,我希望能够清理特定的突出显示线条,而不是一次将它们全部清除。是否可以?

yol*_*yer 5

:match仅接受一场比赛。

请改用该matchadd({highlight-group}, {pattern})函数,例如:

nnoremap <silent> <leader>l :call matchadd('Search', '\%'.line('.').'l')<cr>
Run Code Online (Sandbox Code Playgroud)

要清除您添加的匹配项,请运行:call clearmatches()


Dav*_*ave 5

我经常用 C 语言编程,并且在调试时倾向于在代码中添加调试打印。

我使用vim命令

:syntax match Error /\<debug_printf\>/
Run Code Online (Sandbox Code Playgroud)

确保单词“debug_printf”在特定颜色方案的默认“错误”颜色中突出显示。

这并不能帮助您为一系列行添加书签,但为此您应该查看“书签”插件,它允许您在整个文件中创建和删除书签。

VIM 书签插件