9

我想改變我的vim配置文件,只允許突出顯示我聲明的變量,而不是關鍵字。本文展示並解釋我的意思:Alternate syntax highlightingVim變量語法突出顯示

我是vim的初學者(我從來沒有改變默認配置文件)。 任何人都可以指向正確的方向嗎?

+0

看看這個[wiki](http://vim.wikia.com/wiki/Vim_Tip​​s_Wiki)。 – FlyingFoX

+0

可能不是:https://groups.google.com/forum/#!topic/vim_dev/vULHSjFRmyc – mMontu

+0

這種類型的highlightig在vim中不可用...但可能是插件的好主意。雖然 – mihai

回答

3

由於概念證明,我試過

let vars = ['init', 'editable', 'init_ui'] 
let colors = ['ff0000', '00ff00', '0000ff'] 
for var in vars 
    execute 'syn keyword var_' . var var 
    execute 'hi default var_' . var 'guifg=#' . remove(colors, 0) 
endfor 

和它的工作如預期。這爲列表中的每個變量創建了語法項目:var_init,var_editablevar_init_ui。然後它爲每個語法項目分配一個高亮顏色。

爲了超越概念驗證,您必須獲取變量名稱列表。你可以通過解析一個標籤文件(例如ctags產生的)或者通過在vim中編寫一個解析器(這將是非常便攜的)來做到這一點。您可以對列表進行排序並刪除重複項,但如果跳過此步驟,我認爲使用:hi default會節省您的時間。想出一個比我的例子更好的生成顏色的方法。

當輸入緩衝區或用戶顯式調用函數時,您可以使用自動命令來執行所有這些操作。然後,您可以在定義新變量時開始考慮自動更新。

+0

試試這個:http://www.vim.org/scripts/script.php?script_id=4945 – evilspacepirate

3

Benjifisher的答案概述瞭如何實現,但這仍然是一項重大努力,並且初學者可能遙不可及。但是,作爲評論中推薦的majkinetor,我的Mark plugin將允許您通過手動(取消)標記對「有趣」變量名稱快速設置不同的顏色(默認映射爲<Leader>m,通常轉換爲\,之後是。中號我在你~/.vimrc故障排除的日誌文件時要使用這個自己理解代碼的複雜零件或

用下面的命令,你可以提供多達77層不同的顏色:

let g:mwDefaultHighlightingPalette = 'maximum' 
1

有這樣一個插件:https://github.com/jaxbot/semantic-highlight.vim

其中每個變量都是不同的顏色,這個想法被Evan Brooks的博客文章所推廣。

+0

它強調關鍵字,但不包括變量,如果你有其他語法加亮vimscript加載。測試ES6的JavaScript。 – Pencilcheck