Vim 手記 語法高亮

2022-07-05 04:45:13 字數 2603 閱讀 3438

每個程式設計師的文字編輯器缺少了語法高亮、特殊關鍵字和短語著色,都是不完整的。語法高亮突出了文件的結構,幫助發現排字錯誤,利於除錯,整體上讓文字編輯更輕鬆更有效率。本篇我們將**一下vim的語法高亮正規化以及如何建立和定製著色方案。

vim著色方案

首先說明,本文談論的不是哪種顏色最好,而是vim如何處理語法高亮的問題。

在決定如何給乙個檔案著色時,vim首先將檔案分解成若干結構組。這些都是通過編寫好的語法命令檔案來實現,這些檔案在vim載入乙個檔案的時候就自動載入了,載入過程則是基於一系列複雜規則。如果vim選擇了乙個錯誤的語法命令檔案,你可以通過以下命令手工指定乙個正確的檔案:

:set syn=syntax-type

其中syntax-type是乙個檔案的型別。通常檔案型別就是副檔名,例如選擇php語法高亮,則將syntax-type設定為「php」。

vim主要使用以下九種高亮分組:

comment    : 注釋

constant : 常量,例如數字、引號內字串、布林值。

identifier : 變數識別符號名稱。

statement : 程式語言的宣告,一般是像「

if」或「while

」這樣的關鍵字。

preproc : 預處理,例如c語言中的「#include」。

type : 變數型別,例如「

int」。

special : 特殊符號,通常是類似字串中的「\n」。

underlined : 文字下劃線。

error : 顯示程式語言錯誤的文字。

另外還有乙個分組叫做normal,表示普通文字。

也許你已經注意到,這些高亮分組主要針對程式語言,這是因為語法高亮對它們最有用。但是,vim的高亮命令覆蓋的檔案型別遠超過程式語言,包括從html到email的任何東西。

vim還支援三種輸出裝置:black-and-white terminal(黑白終端),color terminal(彩色終端)和gui(圖形化的使用者介面)。因為它們每乙個都有自己獨特的高亮能力,vim為它們維護了三個獨立的高亮方案。

建立高亮

你必須在你的.vimrc檔案的第一行寫入:

syntax on

這行命令告訴vim開始使用語法高亮。如果你暫時不想改動檔案,你也可以在vim視窗輸入它作為一行命令。

set term=ansi

你也可以嘗試一下color_xterm來代替ansi。

選擇顏色

vim著色使用:highlight和:hi命令。:hi命令實際上是多用途命令,它負責許多例行著色,我們僅用它的顏色選擇功用。它具有以下語法:

:hi group key=value ...

group就是前面所說的9個高亮分組名。

key-value鍵值對規定了不同輸出終端的高亮值。這裡有三個基本鍵名:term、cterm和gui,代表著黑白終端、彩色終端和圖形介面。除了term以外,另外兩個基本鍵還有兩個擴充套件鍵名base-namefg和base-namebg,分別代表對應終端的前景和背景顏色。基本鍵只能擁有非色彩的高亮值,例如加粗和下劃線。

以下是一些高亮鍵和它們可能的值:

term/cterm/gui: bold, underline, reverse, italic, none

ctermfg/ctermbg: red, yellow, green , blue, magenta, cyan, white, blcak, gray

guifg/guibg: 以上所有顏色,而且還可以使用#rrggbb格式色彩。

例如,我想高亮我的預處理宣告為bright magenta,可以使用如下命令:

:hi preproc ctermfg=magenta cterm=bold guifg=#ff00ff

注意,我可以在一行中使用多個鍵值對,他們都會應用於同乙個高亮分組。

語法高亮除錯

vim的語法高亮偶爾也存在一些小問題,我就經常遭遇到其中的三個。 

沒有彩色,只有黑白終端高亮。

導致這種情況的最常見的原因是vim無法確定終端是否具備彩色能力。要修復它,首先確保在.vimrc檔案第一行設定了term=ansi,一定要在syntax on所在行之前。另外還要在shell中將環境變數term設定為color_xterm和color-xterm。

顏色有了,但不是我想要的。

這常發生在你試圖修改別人的.vimrc檔案以為己用的時候。有時,你只需要將自己的色彩定義全部放到檔案的底部去就可以修復。如果不奏效的話,檢查所有可疑的**,然後將它們注釋。(注釋方法為在行首新增雙引號)

滾屏時顏色亂成一團

syn sync minlines=1000

你也可以在.vimrc檔案中設定更大的數值。在vim 6.0及以上版本,你可以使用以下命令:

syn sync fromstart

該命令強制高亮引擎從檔案第一行開始解析檔案,這對大檔案而言會很慢,但它可以確保色彩準確度。

譯自此處

vim語法高亮

安裝vim後,如果還沒有高亮,就按照下面的方式設定 一 如果沒有 vimrc 先建立 vi vimrc 二 切換到插入模式,把下面的設定直接拷貝進去 set autoindent set cindent set modeline set ruler set showcmd set showfullt...

vim 語法高亮

1 配置檔案的位置 在資料夾 etc 以下。有個名為vimrc 的檔案。這是系統中公共的vim配置檔案。對全部使用者都有效。而在每乙個使用者的主資料夾下,都能夠自己建立私有的配置檔案,命名為 vimrc 比如。root資料夾下,通常已經存在乙個.vimrc檔案。假設不知道配置檔案及指令碼的位置,能夠...

vim 語法高亮等設定

vim 語法高亮等設定 一 基本編輯功能 1 複製 剪下和貼上 複製特定的某一段 把游標移到要複製的文字的頭部,按下 v 往後移動游標,游標所過之處的字元 都會高亮,移到欲複製文字的尾部後,按下 y 高亮文字全部被複製到剪粘板。複製某一行 把游標移到要複製的那一行,按下 yy 該行就被複製到剪粘板。...