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.*/
您要查找的文件是“语法”文件。尝试查看/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]