N8:自己動手給vim文法增色

來源:互聯網
上載者:User

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,就能看到自己喜歡的顏色設定了

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.