2014-03-26 35 views
7

我有一個列格式的文本文件,我想在ViM中突出顯示。我想強調這樣的文件:基於列的ViM語法高亮顯示

  • 列1-60:沒有突出
  • 61-65柱:紅
  • 柱66-70:藍色
  • 柱71-80:綠色

我看到了基於正則表達式或關鍵字突出顯示的示例,但我不知道如何僅基於文件的列來完成此操作。

這甚至可能嗎?

回答

6

這其實很容易做到,因爲VIM具有匹配特定列數的模式語法:有什麼用火柴與速度差

syn region Red start="\%61c" end="\%66c" 
syn region Blue start="\%66c" end="\%71c" 
syn region Green start="\%71c" end="\%81c" 

hi Red ctermfg=Red guifg=Red 
hi Blue ctermfg=Blue guifg=Blue 
hi Green ctermfg=Green guifg=Green 
5

定義自己的HI-組:

:hi Red ctermfg=red guifg=red 
:hi Green ctermfg=green guifg=green 
:hi Blue ctermfg=blue guifg=blue 

執行這一點:我用matchadd()

:match Red /\%>60v.*\%<66v/ 
:2match Blue /\%>65v.*\%<71v/ 
:3match Green /\%>70v.*\%<81v/ 

注意到它最大支持。 3場比賽。如果您需要更多,請定義合適的物品。

添加截圖

enter image description here

+0

區域(用於其他答案)?我的文件長達數十萬行,所以我需要這種語法匹配才能儘可能快。 – jlconlin