2010-11-29 84 views
3

如何一次性擴展/修改全部文件類型的vim高亮?一次擴展/修改所有文件類型的vim高亮?

我有一些相對簡單的模式,我想突出顯示不同,可以發生在任何文件類型。因此,而不是像下面那樣添加類似於我可能使用的每種可能的文件類型(〜/ .vim/syntax/python.vim,.../css.vim,.../html.vim,...)是否有一些我可以爲所有文件類型定義一次嗎?

syn match SpecialComment "@[@\-+].*" containedin=Comment 
syn match Comment  "\* .*$"hs=s+1 containedin=SpecialComment 

更新:

至於建議我救了我的變化~/.vim/after/filetype.vim,與它在Cream,但不是股票GVIM或Vim的結果。實際的代碼我使用here,樣品蟒蛇文件來測試針對here,並且期望的結果:

what the pastebin filetypes.vim looks like in Cream

回答

3

你可以嘗試把這些兩行~/.vim/after/filetype.vim。這應該來源於任何頂級語法文件。這可能不是「正確」的地方,但它應該起作用。

filetype.vim似乎是在語法文件之前提供的,因此它被默認的語法文件覆蓋。因此,我建議你創建一個名爲類似的新文件:

~/.vim/after/common_syntax.vim 

與你感興趣的重頭戲線之後,將它添加到~/.vim/after/filetype.vim

if !exists("after_autocmds_loaded") 
    let after_autocmds_loaded = 1 
    au BufNewFile,BufRead * source ~/.vim/after/common_syntax.vim 
endif 

這將導致一旦文件被讀取,該文件將被髮送。

P.S.迴應你的示例代碼中的評論:「爲什麼我們不能使用普通的ol評論組而不是'pythoncomment'等?」,這是因爲語法高亮組是pythonComment,它的着色方式與評論。如果你的語法足夠獨特,那麼它就不會成爲問題,你可以做containedin=ALL。如果它很接近,但不是很獨特,那麼你可以做containedin=ALLBUT,conflictgroup,其中conflictgroup是你想避開的亮點組。

+0

謝謝,這確實有用。我確實需要在第一行中給每個註釋類型命名(pythonComment,cssComment等),但仍然比多個文件少很多。 :) – 2010-12-02 07:33:01

相關問題