我注意到使用 Vim 编辑 Python 文件时,
TODO
的 #TODO
部分以黄色突出显示。如何添加自定义突出显示?例如,我希望 BUG
的 #BUG
部分以红色突出显示。
我搜索了一些答案,但是太复杂,没有达到想要的匹配效果。
有没有人有更好的方法?
您可以通过在 Vim 的 Python 语法定义中引入一个新组来实现此目的。 原来的定义可以在
$VIMRUNTIME/syntax/python.vim
找到,可以作为参考。
内置文件的调整应该进入用户 Vim 目录的 after 文件,例如Windows 上为
~/.vim/after/syntax/python.vim
或 $HOME/vimfiles/after/syntax/python.vim
。
如果目录和文件尚不存在,您可以创建它们。
该文件将在全局配置之后:source
d。
请参阅 :help runtimepath
和 :help after-directory
中的文档。
以下几行需要进入
~/.vim/after/syntax/python.vim
:
syntax match pythonComment "#.*$" contains=pythonBug,pythonTodo,@Spell
syntax keyword pythonBug BUG contained
highlight link pythonBug Error
第一行是从全局语法文件复制的,我们只是添加新的语法组
pythonBug
。
现在评论也可以包含 pythonBug
,就像它们可以包含 pythonTodo
(负责突出显示“TODO”等的组)。
第二行定义
pythonBug
应匹配关键字“BUG”,但前提是它包含在另一个组中(即 pythonComment
)。
第三行将
pythonBug
的外观链接到 Error
,根据您的配色方案,它可能会略带红色。您还可以使用 :highlight
浏览所有已知的突出显示组,然后选择您更喜欢的一个。
虽然可以明确为“BUG”指定红色背景,但最好让颜色方案处理实际颜色。
文档中值得注意的部分是
:help :syn-keyword
和 :help :highlight
。