歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Vim色彩配置相關的問題

Vim色彩配置相關的問題

日期:2017/2/28 15:48:33   编辑:Linux教程

終於把我的工作環境配置的算是點滿意了,同時也對這個顏色配置這個東西的理解上了個階梯。於是記錄一下備忘。

首先發現一個問題,字體的顏色顯示結果很可能是跟終端有關系的。比如,同樣的配置文件,用putty鏈接主機的顯示效果和在桌面上用terminal上打開的效果完全不同。

這裡就不討論putty的問題了,由於色彩效果太差,如果有需要遠程登錄的以後會用VNC來解決,putty就做個簡單配置連接算了,不作為主要編輯方式了。

下面提到的是桌面上的cterm方案,目前在debian上使用感覺比較滿意。

首先是終端的配色,默認系統顏色是白底黑字,看上去有些過於晃眼。我喜歡比較暗淡一些的顏色。其實bg=黑色,前景色用墨綠色是個很好的方案。但是有個問題:因為一般不同的文件會有不同的顏色來顯示,而普通文件一般用白色。在我系統上默認的可執行文件的顏色是綠色系的,所以如果普通文件也用綠色會分不太清。因此我最終采用的配色方案問:背景色為:#2D2D2D,前景色為:#BBBBBB。 就是深灰色底色,淺灰色前景。效果還不錯。

之後是vim的配置。以前多次想搞明白怎麼改vim的色彩以滿足自己需求,這次終於略有小成了。

首先是搞個local的文件夾。vim的系統文件在vim裡叫做$VIMRUNTIME,在Linux下面一般是/usr/share/vim/vim72。 local的話在$HOME下面建立一個.vim/ 的隱藏文件夾,像$VIMRUNTIME下一樣建立各種配置的文件夾。比如自己的配色方案放在~/.vim/colors下面,准備工作就做好了。

然後當然是vimrc裡面要打開語法高亮: set syntax on。 這裡面有個概念,我一直不理解語法文件和配色文件是如何各司其職的。現在的感覺應該是這樣子的:語法文件只是定義了一些模式的匹配方式。比如在Vim中,有的模式叫comment注釋,有的模式叫做類型type,有的模式叫做語句(statement)。Vim根據擴展名去查找相應的語法文件,然後對其中的文本進行模式匹配。以C++為例的話,它可能碰到#開頭的東西,就知道是與處理器指令,就把這些東西歸為PreProc這個模式。碰到int,char, double這些,就知道是個類型。因此會將其歸為type這個模式。碰到if, while 之類的,就歸為statement這個模式。總共有哪些模式,是由Vim定義的。而怎麼觸發這些模式的匹配,比如是用 // 表示注釋還是 # 表示注釋,這個是語法文件來定義的。

因此,有了這些基礎之後,Vim的配色方案裡面其實就做很簡單的事情。我來定義不同的語法項(前面所說的模式》用什麼顏色來表示。比如,darkblue這個配色方案中規定,cterm下,comment 用 darkred顯示,Constant用magenta顯示,Statement用yellow顯示等等。如下圖:

話說回來,這個darkblue的配色方案其實是針對gui下說的。cterm下面其實不是藍色的,不過我很喜歡那個灰色的樣子。

所以,想改哪個類型的顏色的話,將配色方案中的顏色改掉就好了。具體支持哪些顏色呢? 這個可以從help中找到。 在vim中,用:help cterm-colors,就可以找到如下的描述:

這樣想要什麼顏色就改就好了。如果想找gui下的顏色,可以類似用:help gui-colors之類的方式。

另外,如果對某一項專門想改變字體的話,可以用cterm=bold或者gui=bold 的方式進行。

有個需要注意的地方是,不同顏色的字體看上去粗細不是一樣的。即使都是normal的字體下。

Copyright © Linux教程網 All Rights Reserved