自定义vim高亮

six*_*ude 13 unix bash vim syntax-highlighting

我现在正在编辑一些 xml 并且我一直在给自己留下一些评论。像这样

<!-- Question: bla bla -->
Run Code Online (Sandbox Code Playgroud)

我现在正在使用 vim 进行编辑,我希望 vim 现在突出显示问题,以便我可以轻松查看我的代码并找到我需要查看的所有位置。我知道我需要在 vimrc 中添加一些东西,但我认为我可能正在寻找错误的东西。

更新

我试着把它放在我的.vimrc但没有效果:

syn keyword JakeAnnotation      Question

hi JakeAnnotation gui=bold term=bold cterm=bold
Run Code Online (Sandbox Code Playgroud)

更新 2

实际上我可以看到我之前所做的有一些效果,因为当我这样做时:

:hi
Run Code Online (Sandbox Code Playgroud)

它向我展示了它突出显示的所有内容,其中一个条目是:

JakeAnnotation xxx term=bold cterm=bold ctermbg=6
Run Code Online (Sandbox Code Playgroud)

并且 xxx 格式正确

这让我感到遗憾,我只是没有正确定义问题。Question 是否需要单独在线?

更新 3

好的,对于用户 22303 的帖子,我有这个工作:

highlight MyQuestion cterm=bold term=bold ctermbg=blue ctermfg=black
match MyQuestion /Question/
Run Code Online (Sandbox Code Playgroud)

但是我怀疑每个文件只能有一个匹配项。因为当我这样做时:

highlight MyQuestion cterm=bold term=bold ctermbg=blue ctermfg=black
match MyQuestion /Question/
highlight MyRelook cterm=bold term=bold ctermbg=blue ctermfg=black
match MyRelook /Another look/
Run Code Online (Sandbox Code Playgroud)

第一个停止工作。(但第二个有效)。

小智 10

我认为我们一直在为您提供一些不太正确的答案。这是我在我的机器上测试过的一些尝试。

首先,创建您自己的新高亮组:

:highlight MyQuestions guifg=red guibg=green

现在,指定在匹配模式时高亮组将存在:

:syntax match MyQuestions /Question/

这应该开始在包含该文本的每一行上突出显示文本“问题”。要展开以显示整行,您可以更改搜索文本以使用通配符匹配整行,如下所示:

:syntax match MyQuestions /.*Question.*/


Dav*_*llo 5

您要查找的文件是“语法”文件。尝试查看/usr/local/share/vim/syntax//usr/share/vim/syntax/。你想要的文件是 xml.vim。

最简单的方法是找到具有

syn keyword xmlTodo         contained TODO FIXME XXX
Run Code Online (Sandbox Code Playgroud)

并将其更改为:

syn keyword xmlTodo         contained TODO FIXME XXX Question
Run Code Online (Sandbox Code Playgroud)

这会将“待办事项”突出显示添加到任何包含文本的评论中Question

如果您打算(永远)使用它,最好将 xml.vim 复制到您的本地,~/.vim/syntax以便对 vim 的更改不会覆盖您的自定义语法文件。

更新

如果您想在任何文件中使用类似(sortof)的功能,我会使用“goto”命令。我承认这就像 hlsearch,你说它让你很恼火。

编辑时,当光标在一个词上时,键入gd从文件中的当前点gD开始搜索或从头开始搜索。文件中与当前单词匹配的每个单词都会突出显示。您可以键入n以跳转到该单词的下一个实例。

我倾向于这样做,因为您可以通过最少的输入获得突出显示和导航。您以通常的方式关闭突出显示::noh[lsearch]