In vim, FIXME and TODO are highlighted, but I can't get FIXME: and TODO: (note the colon after the keyword) to highlight? What should I put in my .vimrc to make this happen?
相关问题
- Emacs shell: save commit message
- How to change the first two uppercase characters o
- Insert text into current buffer from function
- Hot reload on save
- Substituting zero-width match in vim script
相关文章
- 如何让 vim 支持 .cshtml 文件的代码高亮
- Auto-save in VIM as you type
- How can I use gcc's -I command to add recursiv
- Vim: overloaded mapping for multiple modes
- How to use relative line numbering universally in
- How to copy the value of a vim option to a registe
- How to specify bold font in VS Code editor?
- E185: Cannot find color scheme*
The
containedin
will add it to all groups ending in "Comment", plus vimCommentTitle, where" TODO: foo
would not get highlighted as MyTodo otherwise.If you make your own environment,
make syntax file (not .vimrc)
global syntax file is located vim directory (ex. /usr/share/vim/vim72/syntax/c.vim)
and if you make ~/.vim/syntax/c.vim, then you can add syntax for your own. (override)
Just add additional syntax in that file. (the way @Jefromi does)
Well, you've already found the problem, but here's the why.
There are three basic types of syntax matching: keywords, matches, and regions. Keywords are fixed strings, generally used for basic language keywords (
int
,double
, ...) and also, in your case, for the FIXME and TODO. I really do mean fixed strings; they have to be exact and whole words, unlike matches and regions, which use regex. For example, from the C syntax:It looks like that in pretty much all built-in syntax definitions, just with different group names (cTodo).
iskeyword
tells vim whether a given character can be part of keyword. By default, it does not include colons, so when looking for keywords, vim sees "FIXME:" as "FIXME", and ignores the colon. If you tack on the colon (set iskeyword+=:
), you can now define an extra bit of highlighting:It's up to you how you want to work it into the existing syntax/highlight groups. If it's for just one filetype, you could add it to that syntax's todo group (e.g. cTodo). If you want it everywhere, you can do "myTodo" as I suggested, then link it straight to the Todo highlighting group (
hi def link myTodo Todo
).Alternatively, you can leave
iskeyword
alone (I'd probably recommend this), and simply use a match: