Vim 在 vimrc 中扩展默认高亮关键字列表
Vim expand default highlighting keyword list in vimrc
默认情况下 vim 突出显示评论中的标签,如 TODO、FIXME 和 XXX,但这三个通常不会涵盖所有内容,this and this 等帖子表明还有许多其他有用的标签,而且许多有用的标签级别,所以我尝试实现它们。经过一些研究,我尝试创建新的语法组并将以下内容添加到 .vimrc:
syn keyword myBroken BROKEN ERROR WTF
syn keyword myWarning HACK BUG REVIEW FIXME TODO NOTE
hi def link myBroken Error
hi def link myWarning Todo
但是这不起作用,所以我尝试将它们添加到 $HOME/.vim/after/syntax/syntax.vim
,这也不起作用,所以我然后尝试将其放入 $HOME/.vim/after/syntax/c.vim
并仅在 c 中尝试了这些文件,那仍然没有用。我检查了 runtimepath
确实包含 $HOME/.vim/after
,所以我很困惑。
然后我想也许评论中的关键字不匹配所以我尝试用 syn match myBroken /\v<(ERROR|BROKEN|WTF)/ containedin=.*Comment
替换 syn keyword myBroken BROKEN ERROR WTF
但仍然不起作用。关于我做错了什么或如何解决这个问题的任何想法?提前致谢。
正如您在 :help mysyntaxfile-add
中看到的那样,这是正确的做法。我不知道为什么它对你不起作用,但你可以这样解决:
au BufWinEnter * let w:m1=matchadd('Error', 'BROKEN\|WTF', -1)
au BufWinEnter * let w:m1=matchadd('Todo', 'HACK\|BUG\|REVIEW\|FIXME\|TODO\|NOTE', -1)
有关详细信息,请参阅 :help matchadd()
。
默认情况下 vim 突出显示评论中的标签,如 TODO、FIXME 和 XXX,但这三个通常不会涵盖所有内容,this and this 等帖子表明还有许多其他有用的标签,而且许多有用的标签级别,所以我尝试实现它们。经过一些研究,我尝试创建新的语法组并将以下内容添加到 .vimrc:
syn keyword myBroken BROKEN ERROR WTF
syn keyword myWarning HACK BUG REVIEW FIXME TODO NOTE
hi def link myBroken Error
hi def link myWarning Todo
但是这不起作用,所以我尝试将它们添加到 $HOME/.vim/after/syntax/syntax.vim
,这也不起作用,所以我然后尝试将其放入 $HOME/.vim/after/syntax/c.vim
并仅在 c 中尝试了这些文件,那仍然没有用。我检查了 runtimepath
确实包含 $HOME/.vim/after
,所以我很困惑。
然后我想也许评论中的关键字不匹配所以我尝试用 syn match myBroken /\v<(ERROR|BROKEN|WTF)/ containedin=.*Comment
替换 syn keyword myBroken BROKEN ERROR WTF
但仍然不起作用。关于我做错了什么或如何解决这个问题的任何想法?提前致谢。
正如您在 :help mysyntaxfile-add
中看到的那样,这是正确的做法。我不知道为什么它对你不起作用,但你可以这样解决:
au BufWinEnter * let w:m1=matchadd('Error', 'BROKEN\|WTF', -1)
au BufWinEnter * let w:m1=matchadd('Todo', 'HACK\|BUG\|REVIEW\|FIXME\|TODO\|NOTE', -1)
有关详细信息,请参阅 :help matchadd()
。