在vim中,FIXME和TODO是突出顯示的,但我無法獲得FIXME:和TODO :(注意關鍵字後的冒號)以突出顯示?我應該在我的.vimrc中做什麼才能做到這一點?在vim中,我如何突出顯示TODO:和FIXME:?
回答
那麼,你已經發現了這個問題,但這是爲什麼。
語法匹配有三種基本類型:關鍵字,匹配和區域。關鍵字是固定字符串,通常用於基本語言關鍵字(int
,double
,...),對於您的情況,也適用於FIXME和TODO。我確實是指固定的字符串;他們必須是精確的和完整的單詞,不像使用正則表達式的匹配和區域。例如,從C語法:
syn keyword cTodo contained TODO FIXME XXX
它看起來像幾乎所有內置的語法定義,只是與不同的組名(cTodo)。
iskeyword
告訴vim給定的字符是否可以成爲關鍵字的一部分。默認情況下,它不包含冒號,因此當查找關鍵字時,vim將「FIXME:」視爲「FIXME」,並忽略冒號。如果你釘在冒號(set iskeyword+=:
),你現在可以定義突出的一個額外位:
syn keyword myTodo contained TODO: FIXME:
你想如何把它工作到現有的語法/高亮組這是給你的。如果它僅適用於一種文件類型,則可以將其添加到該語法的待辦事項組(例如cTodo)。如果你想在任何地方,你可以按我的建議做「myTodo」,然後直接鏈接到Todo突出顯示組(hi def link myTodo Todo
)。
或者,你可以離開iskeyword
單獨(我可能會建議這一點),並簡單地用一根火柴:
syn match myTodo contained "\<\(TODO\|FIXME\):"
hi def link myTodo Todo
+1 @Jefromi,但是,我不認爲這個syn匹配有效。我將它放在我的.vimrc中,如果我將FIXME更改爲其他內容,則不會突出顯示。 – g33kz0r 2011-11-17 01:00:50
@ G33kx0r:這不是這場比賽的錯;它仍然有效,如果它仍然存在。我懷疑你在vimrc中的行之後啓用了語法(這種或那種)*,並且啓用語法時,它首先清除舊的語法,然後加載適當的語法。您可以使用':syn list myTodo'來檢查該匹配是否仍然存在。另見':help syntax-loading'。 – Cascabel 2011-11-17 01:33:40
設置第一個'語法on'和之後'syn match myTodo包含「\ <\(TODO \ | FIXME \):」'在我的'vimrc'文件和'嗨! def鏈接myTodo Todo'不適用於我。另一方面,例如,如果我這樣做,'au BufNewFile,BufRead * .tex syn match texTodo「\ <\(TODO \ | FIXME \):''生成的'tex'文件被正確突出顯示。有一個通用的解決方案嗎? – petobens 2013-06-11 18:24:36
如果你把自己的環境,make syntax file (not .vimrc)
全球語法文件位於vim目錄(例如 /usr/share/vim/vim72/syntax/c.vim)
如果喲你做〜/ .vim/syntax/c.vim,然後你可以爲你自己的 添加語法。 (覆蓋)
只需在該文件中添加其他語法即可。 (@Jefromi的方式一樣)
augroup vimrc_todo
au!
au Syntax * syn match MyTodo /\v<(FIXME|NOTE|TODO|OPTIMIZE|XXX):/
\ containedin=.*Comment,vimCommentTitle
augroup END
hi def link MyTodo Todo
的containedin
將其添加到「註釋」結尾的所有羣體,再加上 vimCommentTitle,其中" TODO: foo
不至於太突出,否則作爲MyTodo。
使用說明:您可以將其添加到.vimrc中,並且如果您只想突出顯示該單詞,而不是後面的冒號,請刪除冒號(':')。我更喜歡突出顯示_NOTE_ :,而不是_注意:_。我有時也會寫NOT NOTE或TODO,後面跟着冒號。 – Ari 2016-09-15 22:08:00
- 1. Cloud9在評論中突出顯示// TODO
- 2. Xcode使用FIXME,TODO,???,?
- 3. 突出顯示// XCode中的TODO
- 4. Vim:突出顯示每個文件類型的TODO字樣
- 5. 突出顯示VIM
- 6. 在vim中突出顯示docker命令
- 7. 的字符在VIM中突出顯示
- 8. Vim HereDoc突出顯示
- 9. Vim隱藏突出顯示
- 10. Vim語法突出顯示
- 11. Vim突出顯示問題
- 12. YADR和Vim突出顯示顏色
- 13. 如何在終端中突出顯示vim中的關鍵字?
- 14. 如何在Eclipse中啓用TODO/FIXME/XXX任務標籤?
- 15. VIM不突出顯示PHP文件,突出顯示其他人
- 16. Vim中的結構突出顯示
- 17. vim中的JavaScript語法突出顯示
- 18. 突出顯示VIM中的特定列
- 19. 突出顯示VIM中的#defined值
- 20. 突出顯示VIM中的任意行
- 21. 如何在Vim中突出顯示printf,scanf?
- 22. 如何在vim中突出顯示新替換的文本
- 23. 在Vim中:如何更改突出顯示的部分?
- 24. 如何在vim中突出顯示符號?
- 25. 如何在Vim中突出顯示或標記更改的行?
- 26. 在Eclipe的右側編輯器邊框中突出顯示FIXME標籤
- 27. 在所有編程模式下突出顯示TODO
- 28. 如何突出在vim
- 29. 如何讓Vim突出顯示Markdown中的乳膠環境
- 30. 如何激活VIM中突出顯示的C語法?
這很奇怪;我的突出顯示有沒有冒號。語法突出顯示在單個語法中定義,我認爲 - 這是在某些特定的文件類型中發生的嗎? – Cascabel 2010-11-04 13:50:15
@Jefromi:我認爲它發生在每種文件類型中。 – 2010-11-04 13:51:32
':verbose set iskeyword?'告訴? – Benoit 2010-11-04 13:52:37