建立VIM 設定檔 「.vimrc」
$ cd //移動到使用者的家目錄
$ vim .vimrc //建立新的vim設定檔
介面優化
:set nu
顯示行號:對於 debug 相當有幫助!
:set ai
自動對齊縮排:如果上一行有兩個 tab 的寬度,按 enter 繼續編輯下一行時會自動保留兩個 tab 鍵的寬度。
:set cursorline
光標底線:光標所在的那一行會有底線,幫助尋找光標位置
:hi CursorLine cterm=none ctermbg=DarkMagenta ctermfg=White
更改光標底線樣式,cterm代表文字上的變化,certmbg代表文字背景,ctermfg代表文字前景。
:set cursorcolumn
顯示光標所在的行
hi CursorColumn cterm=none ctermbg=DarkMagenta ctermfg=White
更改光標行的樣式,cterm代表文字上的變化,certmbg代表文字背景,ctermfg代表文字前景。
:set bg=light
上色模式-針對亮背景上色
預設為亮背景(白色等)上色,但是終端機的初始背景色為深紫色,會出現文字失蹤 ( 例如註解為深藍色 ) 的情況。將這一行換成 :set bg=dark 即可。
:set tabstop=4
縮排間隔數 ( 預設為 8 個空白對齊 )
也就是說按一次 tab 鍵,游標會自動跳 4 格空白字元的寬度。雖有多個空格但實際上只有一個 tab 字元。
注意:也就是說,在其他環境下,看到 tab 字元,依舊是 8 個空白寬
:set shiftwidth=4
自動縮排對齊間隔數:向右或向左一個縮排的寬度
以下可以斟酌使用
:set mouse=a
啟用游標選取:游標可以直接選取文字,滾輪可以直接滑動頁面 ( 非移動游標 )。
可以取代用 v 選取字元的功能,配合 ctrl+insert ( 複製 ) 及 shift+inset ( 貼上 ),相當方便
:set mouse=""
停用游標選取:游標無法選取文字,滾輪只會移動光標的位置。
:set ruler
( 預設就有 ) 顯示右下角的 行,列 目前在文件的位置 % 的資訊
:set backspace=2
( 預設就有 ) 在 insert 模式啟用 backspace 鍵
:set formatoptions+=r
自動註解(注意:若要貼上的文件某一行有註解,會因為此項設定而讓其以下每一行都變成註解)
:set history=100
保留 100 個使用過的指令
:set incsearch
在關鍵字尚未完全輸入完畢前就顯示結果
如果覺得這功能太過熱心的話,可以使用 ctrl+n 來達成自動補完的功能
:set t_Co=256
讓vim能支援256色
:colorscheme {blue,darkblue,default,delek,desert,elford,evening,industry,koehler,morning,murphy,pablo,peachpuff,ron,shine,slate,torte,zellner}
使用VIM內建顏色配置,以上陣列裡選一個,檔案位置在/usr/share/vim/vimNN/colors/
syntax enable
開啟VIM語法高亮度支援
tab 與 space
:set expandtab
輸入 tab 都會被轉換成 space,而對應的 space 數量由 :set tabstop=x 決定
但是文件中已經存在的 tab 鍵不會受到影響,必須在 command mode 下輸入 :retab ,才會被替換掉
如果只有當下那一行的 tab 要被替換成 space,則輸入 :.retab
輸入優化
filetype indent on ( 好用! )
啟用依照檔案類型,決定自動縮排樣式的功能
例如:如果正在編輯的檔案是 .c 或 .cpp 檔,遇到 { 按下 enter ,會自動往右一縮排。如果是 Makefile,輸入完 target 按下 enter ,為了 rule 而自動往右一縮排。
行號顏色
:hi LineNr cterm=bold ctermfg=DarkGrey ctermbg=NONE
設定行號為:粗體,前景色為深灰色,沒有背景色
hi 為 highlight 指令的縮寫,擁有同樣的效果
LineNr 指定為 line number 的顏色設定
cterm 指的是爲 color terminal 的環境 ( 在 linux 桌面環境所開的 terminal ) 做設定,其他還有 term ( 一般 terminal,例如透過 putty 連上的工作環境 )、gui。
cterm 支援的顏色列表,一共有 16 色
NR-16 NR-8 COLOR NAME
0 0 Black
1 4 DarkBlue
2 2 DarkGreen
3 6 DarkCyan
4 1 DarkRed
5 5 DarkMagenta
6 3 Brown, DarkYellow
7 7 LightGray, LightGrey, Gray, Grey
8 0* DarkGray, DarkGrey
9 4* Blue, LightBlue
10 2* Green, LightGreen
11 6* Cyan, LightCyan
12 1* Red, LightRed
13 5* Magenta, LightMagenta
14 3* Yellow, LightYellow
15 7* White
自訂的快速鍵
vim的「map」、「nmap」、「vmap」、「omap」、「map!」、「imap」、「cmap」指令可以在不同vim操作模式下建立快速鍵。其中,「map」涵蓋了一般模式和視覺模式;「map!」涵蓋了「map」沒包含的模式;「imap」只涵蓋插入模式;「cmap」只涵蓋命令列模式。
「map」指令家族的用法都一樣,格式如下:
map 快速鍵 對應的按鍵和指令
例如在「.vimrc」設定檔加入:
map <C-t> :echo &shiftwidth<CR>
即可在vim的一般模式和視覺模式下,按下快速鍵「ctrl+t」來顯示自動縮排的寬度。由於vim內建的快速鍵以及終端機軟體內建的快速鍵已經有很多,所以要找到能夠自訂的快速鍵也不太容易,這是需要不斷嘗試的部份。
