vim官網上有現成的外掛程式增加vim的文法顏色,一直弄不好,自己動手豐衣食。原理比較簡單,通過ctags工具產生tags檔案,再從tags檔案產生vim的source檔案,然後vim的source命令執行它。
1. 下載一個支援Lua的vim,學了Lua手癢,並且對vim的script不大懂,函數是由用Lua寫的;
2. 下載一個ctags,cygwin貌似帶有,也可能衝突,下成別的,確認一下版本; 類似
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
Compiled: Jul 9 2009, 17:05:35
Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
Optional compiled features: +win32, +regex, +internal-sort
3.寫個Lua檔案,命名為stag.lua; 可再自己修改它,加入更多的個人設定,如已知的tag,改改顏色什麼的;
local tags_vim=io.open("tags.vim", "w");local hl={};hl.f="Function";hl.m="Member";hl.d="Define";hl.s="Struct";hl.v="Variable";hl.t="Typedef";--ctags -R -V -f ./tagsio.input("tags")for line in io.lines() dolocal id, idtype=string.match(line, "^(.-)\t.-;\"\t(.)");if (id) thenlocal hltype=hl[idtype];hltype=hltype or "Type";tags_vim:write("syn keyword " .. hltype .. " " .. id .. "\n");endendtags_vim:write([[syn keyword Typedef stringsyn keyword Typedef stdsyn keyword Typedef auto_ptrhighlight Function gui=none guifg=navy guibg=bg ctermfg=Greenhighlight Member gui=none guifg=#808080 guibg=bg ctermfg=DarkMagentahighlight Define gui=none guifg=#a055df guibg=bg ctermfg=Whitehighlight Struct gui=none guifg=#7f0055 guibg=bg ctermfg=LightGreenhighlight Variable gui=none guifg=blue guibg=bg ctermfg=LightGreenhighlight Typedef gui=none guifg=blue guibg=bg ctermfg=Yellow]]);tags_vim:close();
4.在gvimrc中給綁定兩個鍵,看個人喜歡;
map <F11> :call Myhl() <CR><F12>map <F12> :so tags.vim<CR>function! Myhl()lua << EOFdofile("stag.lua");EOFendfunction
5.到原始碼的目錄下運行ctags.exe,產生tags檔案,在vim中按一下F11,就能看到自己喜歡的顏色設定了