本文的目标不是一個VI編輯器的教材。它隻是個人在使用VI程式設計的過程中,對自認為比較有用的一些編輯功能及其它功能的一些整理。有一些功能,比如 hjkl鍵移動光,個人并不習慣使用,同時也并不認為對提高編輯效率有多大幫助,是以沒有列入其中。與程式設計風格,程式設計規範這些東西恰恰相反,編輯器的使用習慣對程式員來說,是一件很個人化,很個性化的事情。每個人都可以有自己的使用習慣和偏好,隻要有利于工作的高效即可。
一、基本編輯功能
1、複制、剪切和粘貼
複制特定的某一段:把光标移到要複制的文本的頭部,按下“v”,往後移動光标,光标所過之處的字元>都會高亮,移到欲複制文本的尾部後,按下“y”,高亮文本全部被複制到剪粘闆。
複制某一行:把光标移到要複制的那一行,按下“yy”,該行就被複制到剪粘闆。
剪切特定的某一段:把光标移到要剪切的文本的頭部,按下“v”,往後移動光标,光标所過之處的字元>都會高亮,移到欲剪切文本的尾部後,按下“d”,高亮文本全部被複制到剪粘闆。
剪切某一行:把光标移到要剪切的那一行,按下“dd”,該行就被複制到剪粘闆。
粘貼剪粘闆的内容到光标處:把光标移到要粘貼的位置,按下“p”。
2、搜尋、替換
向前搜尋字元串“example”:/example。
向後搜尋字元串“example”:?example。
搜到第一個字元串後,按下“n”向後搜尋下一個,按下“N”向前搜尋下一個。
全文替換: 把全文的old替換為new :%s/old/new/g
把全文的old替換為new,但每次要求确認::%s/old/new/c
3、Undo和redo
Undo:按下“u”。
Redo: 按下“Ctrl + R”。
4、儲存、另存為
儲存:“w”。
另存為:“w filename”。
二、文法高亮,格式設定
首先在vi中導入vimrc範例檔案::read $VIMRUNTIME/vimrc_example.vim。然後把它儲存到你的使用者目錄下,儲存檔案名為.vimrc。檔案中有一句:syntax on。即為開啟文法高亮功能。
關于這個檔案中,還有幾個比較有用的設定:
set ruler “任何時候都顯示光标位置。
set showcmd “顯示不完整的指令。
set tabstop=4 “tab鍵縮進4格。
三、關鍵字補全
Ctrl + N:找到比對的關鍵字把目前未拼寫完的關鍵字補充完整,如果有多個可比對項,則每按一次Ctrl+N,切換到下一項。如果習慣用tab鍵補充關鍵字,則可以在.vimrc檔案中添加如下代碼:
function! CleverTab()
if strpart( getline(’.'), 0, col(’.')-1 ) =~ ‘^\s*$’
return “\<Tab>”
else
return “\<C-N>”
endfunction
inoremap <Tab> <C-R>=CleverTab()<CR>
四、編輯一個工程
通常我們在開發一個程式中,不止一個源程式檔案,我們要在整個工程中編輯源代碼,就需要經常在檔案間進行切換,這時,可以使用指令:
:e filename
切換到目标檔案,而不需要退出vi。
編輯完成,要make,直接輸入make指令,如果有錯誤,該指令執行完畢後,會自動跳到第一個錯誤的地方,還有幾個指令可以在錯誤行之間定位:
:cc 顯示錯誤資訊。
:cn 顯示下一條錯誤資訊。
:cp 顯示前一條錯誤資訊。
:cl 列出所有錯誤。
五、其它
1、括号比對。
包括{} [] ()的比對,在某一個括号上按下%,便會自動跳到與之比對的那個括号處,再按一下%,就會跳回來。
2、獲得線上幫助。
在編輯程式源代碼時,如果對某個系統函數的用法不是很明确,把光标移到這個函數下,按下“K”,便>會跳出這個函數的man幫助資訊。
3、暫時回到shell。
輸入指令:sh
4、在vi中執行shell指令。
輸入:!cmd,比如:!ls。
實用技巧:在Vim編輯器下文法高亮的設定
如果希望vim預設打開支援文法高亮(隻在支援色彩的終端中),編輯(ubuntu 7.10 amd版中實作,很多時候隻要直接用sudo apt-get install vim 更新安裝vim就可以實作這個功能,但是linux這個東西經常會出現莫名其妙的問題,下面的這個方法比較直接)
sudo vim ~/.vimrc
内容為:
if &t_Co > 1
syntax enable
endif
Vim的啟動配置
不習慣使用vi的時候,會覺得用它看代碼很不友善,累。其實,vi的功能非常強大,稍做配置,就能得到一個友好的編輯器。在啟動的時候vim會讀取 /usr/share/vim/vim61/.vimrc(全局設定的vimrc)和 ~/.vimrc(使用者設定的vimrc,~/也就是大家登入後的根目錄home/usrname/,是以可以根據自己的需要create一個rc檔案)并根據該檔案的内容來配置vim的各項設定。
下面的是一個範例vimrc檔案:
set nocompatible
set bs=2
set columns=80
set background=dark
set tabstop=8
set wrapmargin=8
set nobk
set cindent
set shiftwidth=8
syntax on
set ruler
set noexpandtab
下面是各項設定的具體内容:
set nocompatible :這個設定将避免vim以和vi高度相容的方式工作,該設定需要在每個vimrc檔案的最開始處,進而影響接下來的很多設定;
set bs=2 :這個将影響倒退鍵的工作,具體情況非常複雜,可以參照:help ‘bs’;
set columns=80 :設定螢幕的行數;
set background=dark :使用在深色背景上看起來比較舒服的顔色顯示;
set tabstop=8 :tab鍵跳過的空格數,tabstop=8是預設值,不過為了和windows平台下的編輯器相容,建議選擇tabstop=4;
set wrapmargin=8 :設定在視窗右側何處開始換行;
set nobk :關閉檔案備份的功能;
set cindent :開啟縮進功能;
set shiftwidth :設定縮進的長度,shiftwidth=8是預設值,為了相容建議選擇shiftwidth=4;
syntax on :開啟文法結構強調,就是文法高亮;
set ruler :使得vim在右下角顯示目前行列數;
set noexpandtab :使vim在tab處,插入tab符而不是一串空格。
閱讀vim内部的幫助資訊可以獲得,很多vim參數的資訊。在vim中敲入 :help 可以擷取幫助,或者:help usr_toc.txt可以讀取使用者手冊的目錄。
高亮顯示php代碼
進入vim後,在普通模式下輸入如下指令,開啟php代碼高亮顯示
:syntax enable
:source $VIMRUNTIME/syntax/php.vim