vim配色方案

改變用戶vim配色方案php

vi ~/.vimrchtml

加一行正則表達式

colorscheme murphyvim

改變用戶dir配色方案ui

cp -af /etc/DIR_COLORS ~/.dir_colors (注意後面文件有點號,是隱藏文件)spa

 

保存退出就行了。.net

配色方案:插件

/usr/share/vim/vim72/colorsregexp

 

若是以爲murphy配色方案很差,能夠看一下/usr/share/vim/vim72/colors,那裏保存着不少的配色方案,你能夠任選一個替換上面的murphy。orm

##################################

本節所用命令的幫助入口:

:help syn-enable
:help :colorscheme
:help :highlight
:help highlight-groups
:help 2html.vim
看到標題,也許你就知道本文準備講VIM的色彩機制了。
VIM並非只有黑色兩色。正相反,它提供了很是靈活的機制容許用戶自定義色彩。運行在終端中的VIM,因爲終端自己的限制,只能使用若干種固定的顏色;但對於GVIM來說,你能夠根據你的喜愛調出任意的顏色。
首先,把下面的Ex命令加入你的vimrc,打開VIM的語法高亮功能:
syntax enable
這條命令,其實是執行$VIMRUNTIME/syntax/syntax.vim腳本。若是你尚未打開文件類型檢測功能,在這個腳本里會把它打開,由於要語法高亮,首先須要知道是什麼文件類型。而後它會安裝Filetype自動命令,在檢測到文件類型時,設置syntax選項。而對syntax選項進行設置,又會觸發Syntax自動命令,這條自動命令會在runtimepath的syntax子目錄搜尋該類型的語法文件,並使用缺省的配色方案進行染色。
所謂語法文件,就是定義某種類型文件的語法。以C語言爲例,它的語法文件定義了什麼應該作爲關鍵字來高亮,什麼被作爲註釋來高亮,等等。VIM將根據語法文件的定義,把關鍵字以一種顏色高亮出來,把註釋以另外一種顏色高亮出來。具有使用什麼樣的顏色,則由配色方案(colorscheme)來決定,缺省使用default配色方案。
如今,你的世界已經亮起來了:註釋、關鍵字、常數、字符串等等都以不一樣的顏色顯示出來,讀程序輕鬆多了。但是你不太喜歡default配色方案的設置,可不能夠換用其它的配色方案呢?
固然沒能夠!若是你使用的是GVIM,在「編輯」菜單中選擇「配色方案」,你就能夠在多個配色方案中切換了。也可使用colorscheme Ex命令來改變你的配色方案。例如,我喜歡的GUI配色方案是darkblue,所以我在vimrc中加入這樣一句話:
colorscheme darkblue
    
這樣,進入VIM以後,我所用的就是darkblue方案了。

http://www.vim.org
上還有更多的配色方案,你能夠在
http://www.vim.org/scripts/script.php?script_id=625
下載截止到2005年3月全部colorscheme的彙總,你能夠在其中找到一個本身喜歡的。安裝colorscheme時,只須要把它們拷貝到.vim/color目錄下就好了。
有一個名爲Color Scheme Explorer的插件,能夠幫助你快速瀏覽你所安裝的color scheme,在這裏下載:
http://www.vim.org/scripts/script.php?script_id=1298
選擇了喜歡的colorscheme後,在vimrc中加入一條colorscheme命令,之後VIM就會使用你選定的配色方案了。
若是對配色方案某些顏色不太滿意,那麼你能夠在原來配色方案的基礎上,修改其中的一些定義。例如,我把desert.vim拷到.vim/color目錄,重命名爲darkblue_my.vim。而後作以下更改(只列出改變的內容):
let colors_name = "darkblue_my"
hi Normal guifg=#c0c0c0 guibg=#294d4a ctermfg=gray ctermbg=black
......
"Omni menu colors
hi Pmenu guibg=#444444
hi PmenuSel ctermfg=7 ctermbg=4 guibg=#555555 guifg=#ffffff
" Matched brackets
hi MatchParen ctermfg=7 ctermbg=4
    
首先改變colors_name,VIM在某此狀況會根據這個名字從新載入color scheme。
接下來我從新設置了GUI的背景色,在前面的抓圖中你們看到過這個顏色。
接下來的Pmenu和PmenuSel用來設置VIM下拉菜單的顏色,咱們在lookupfile一文中看到過下拉菜單。
VIM 7中,當光標移到括號上時,VIM會高亮與之匹配的括號,所使用的顏色就是MatchParen,我在這裏也更改這個顏色。
Pmenu、PmenuSel,以及MatchParen,都是VIM定義的缺省高亮組的名字,你能夠用「:help highlight-groups」命令查看有這些高亮組及其含義。
若是你打算在終端及GUI界面中使用不一樣的colorscheme,能夠這樣設:
" color scheme
if has("gui_running")
    colorscheme darkblue_my
else
    colorscheme desert_my
endif " has
    
固然,這裏的darkblue_my和desert_my都是我自已改過的colorscheme。
VIM還提供了一個腳本,能夠把你的文件按當前的顏色定義轉化成HTML/XML文件,試試「:TOhtml」命令吧,更多信息請「:help 2html.vim」。
記得Source Insight中有一個功能,按SHIFT+F8能夠把光標下的詞高亮出來,在看代碼時很是有用。VIM下也有一個插件能夠完成此功能,並且比Source Insight的這個功能強大多了。
這個插件由Yuheng Xie所寫,對這個插件有什麼疑問,能夠水木社區的VIM版找他(
http://www.newsmth.net/bbsdoc.php?board=VIM
)。在這裏下載此插件:
http://www.vim.org/scripts/script.php?script_id=1238
把此插件直接拷貝到你的.vim/plugin目錄就好了。
我在vimrc中這樣設置:
    """"""""""""""""""""""""""""""
   " mark setting
   """"""""""""""""""""""""""""""
   nmap  hl MarkSet
   vmap  hl MarkSet
   nmap  hh MarkClear
   vmap  hh MarkClear
   nmap  hr MarkRegex
   vmap  hr MarkRegex
    
這樣,當我輸入「,hl」時,就會把光標下的單詞高亮,在此單詞上按「,hh」會清除該單詞的高亮。若是在高亮單詞外輸入「,hh」,會清除全部的高亮。
你也可使用virsual模式選中一段文本,而後按「,hl」,會高亮你所選中的文本;或者你能夠用「,hr」來輸入一個正則表達式,這會高亮全部符合這個正則表達式的文本。
你能夠在高亮文本上使用「,#」或「,*」來上下搜索高亮文本。在使用了「,#」或「,*」後,就能夠直接輸入「#」或「*」來繼續查找該高亮文本,直到你又用「#」或「*」查找了其它文本。
  
若是你在啓動VIM後從新執行了colorscheme命令,或者載入了會話文件,那麼mark插件的顏色就會被清掉,解決的辦法是從新source一下mark插件。或者像我同樣,把mark插件定義的highlight組加入到你本身的colorscheme文件中。例如,把下面的語句加到desert_my.vim及darkblue_my.vim中:
"  For mark plugin
hi MarkWord1  ctermbg=Cyan     ctermfg=Black  guibg=#8CCBEA    guifg=Black
hi MarkWord2  ctermbg=Green    ctermfg=Black  guibg=#A4E57E    guifg=Black
hi MarkWord3  ctermbg=Yellow   ctermfg=Black  guibg=#FFDB72    guifg=Black
hi MarkWord4  ctermbg=Red      ctermfg=Black  guibg=#FF7272    guifg=Black
hi MarkWord5  ctermbg=Magenta  ctermfg=Black  guibg=#FFB3FF    guifg=Black
hi MarkWord6  ctermbg=Blue     ctermfg=Black  guibg=#9999FF    guifg=Black
    
不知道爲何,個人VIM 7.0在切換到其它緩衝區而後再切換回來時,原來被標記的文本會失去高亮。而做者說他並不存在此問題。若是你存在相似的問題,能夠打上我所加的補丁:
--- easwy/mark.vim    2006-12-01 13:02:18.000000000 +0800
+++ plugin/mark.vim    2007-03-23 10:22:02.000000000 +0800
@@ -440,6 +440,43 @@
     endif
endfunction

+" easwy add
+" return the mark string under the cursor. multi-lines marks not supported
+function! RedoMarkWord()
+    " define variables if they don't exist
+    call s:InitMarkVariables()
+
+    let i = 1
+  while i  /pattern/
+      let quote = "/?~!@#$%^&*+-=,.:"
+      let j = 0
+      while j = strlen(quote)
+        return -1
+      endif
+
+      " highlight the word
+      exe "syntax clear MarkWord" . i
+      exe "syntax match MarkWord" . i . " " . quoted_regexp . " containedin=ALL"
+    endif
+    let i = i + 1
+  endwhile
+endfunction
+
+augroup markword
+  autocmd!
+  autocmd BufWinEnter * call RedoMarkWord()
+augroup END
+" easwy end
+
" Restore previous 'cpo' value
let &cpo = s:save_cpo

用法:
1. 保存該patch到某一目錄,例如:/tmp/mark.vim.patch
2. cd到你的.vim目錄:cd ~/.vim
3. 運行命令:cat /tmp/mark.vim.patch | patch -p0
[參考文檔]
1. VIM幫助文件
2.  
http://vimcdoc.sourceforge.net/

相關文章
相關標籤/搜索