Vim/Vi一直是Unix/Linux系統上最流行的文本編輯器,從2001年接觸UNIX至今,Vim/Vi始終是我修改系統文件、編寫簡單程序的首選編輯器,是居家旅行必備之工具。如何提升它的編寫速度,本文着重介紹了一些使用技巧供大家參考。
值得一提的是Vim是慈善軟件(CharityWare),如有贊助或評比得獎,所得將全部救助烏干達孤兒,軟件使用是免費的,歡迎手頭有點閒錢的使用者捐款贊助,如果沒銀子也沒關係,至少當有評比活動時(有獎金可拿的那種)。
應用技巧一:快速註釋
1、連續行註釋
使用Vim/Vi編輯shell腳本,在進行調試的時候,需要進行多行的註釋,每次都要先切換到插入模式,在行首輸入註釋符“#”,再退回命令模式,非常麻煩。其實如果要註釋連續行,可在命令模式下執行,格式如下:
:起始行,終止行s/要替換字符/替換爲新字符/g
如需註釋第1行到第20行,可以執行:
:1,20s/^/#/g
其中“^”表示在行首插入,“#”爲要插入的字符,“g”表示執行替換時不確認,若希望每行交互詢問是否執行,可將“g”改爲“c”。
如果編輯PHP腳本,註釋要稍微麻煩一點,如也要註釋第1行到第20行,要執行:
:1,20s/^////g
PHP的註釋符“//”要特殊處理,因爲Vim/Vi替換命令格式中默認“/”爲分隔符,這樣就需要使用轉義符“”,表示“/”就要寫成“/”纔可以,所以命令如上所示。強烈建議各位看官使用,省時省力省鍵盤 還省手指頭。
2、非連續行註釋
如果註釋非連續的多行,可以定義快捷鍵簡化,格式爲:
:map 快捷鍵 執行命令
如定義快捷鍵Ctrl+P爲在當前行行首添加“#”註釋,可以執行:
:map ^P I//
“^P”爲定義快捷鍵Ctrl+P,要注意的是必須同時按“Ctrl+v+p”按出此“^P”方纔有效,或先按“Ctrl+v”再按“Ctrl+p”也
可以;“I//”就是此快捷鍵要觸發的動作,“I”爲在光標所在行行首插入,“//”爲要輸入的字符,“”表示退回命令模式,“”要逐個字符鍵入,不可直
接按鍵盤的“Esc”鍵。執行成功後,直接在任意需要註釋的行上按“Ctrl+P”就自動會在行首加上“//”號了非常方便。
如果要取消此快捷鍵,只需輸入命令:
:unmap ^P
我寫程序或文檔喜歡在末尾註釋中寫上自己的郵箱,每次錄入十分麻煩,索性定義了一個快捷鍵,如下:
:map ^M [email protected]
以後寫完內容後,直接在註釋中Ctrl+M就錄入了俺的郵箱了。
應用技巧二:亂七八糟的技巧
1、傳說中的命令“ab”
命令“ab”,同樣可以解決上述輸入郵箱的問題,因爲我在Vim/Vi中定義了太多快捷鍵,如輸入電子郵箱的、輸入通信地址的、輸入聯繫電話的、輸入求
偶標準的、輸入PHPChina管理員三圍的……後來自己都記不住了。之後一天深夜電閃雷鳴,我突然發現了這條命令——“ab”,蒼天啊大地啊,我終於找
到解決問題的方法了!oh yeah!
原來輸入經常用的信息可以如此簡單,LOOK——
:ab 替代符 原始信息
示例如下:
:ab sammail [email protected]
執行之後,在輸入模式任何地方錄入“sammail”,再敲任意字母符號或者回車空格,咔嚓一下,利馬就變成“[email protected]”,那真是相當的方便啊!
2、原來可以雙劍合一
在Vim/Vi中有兩個小技巧:
No.1 可以直接在Vim/Vi中執行UNIX/Linux命令不需退出Vim/Vi
有時編寫一些系統腳本,需要了解系統信息,很多同學就退出Vim/Vi然後執行命令,獲得信息後再進行編輯。其實大可不必,如想獲得/tmp目錄下內容,只需在Vim/Vi命令模式下直接執行:
:!ls /etc
查看完命令結果,直接回車,就可以繼續編輯非常方便。
在Vim/Vi中執行命令,格式就是這麼簡單:
:!命令
No.2 可以直接將其他文件內容導入當前編輯文件中
格式:
:r 文件名
如,需要導入文件/etc/issue的內容,執行:
:r /etc/issue
兩個非常非常easy的小伎倆,就在一個我非常鬱悶的下午,狂敲鍵盤時一不小心沒留神發現了這樣一個小祕密——原來它們可以結合起來用!
先舉個例子,很多程序員喜歡寫完程序後在註釋中寫入當前時間,我有個好辦法即省事又快速還準確,只需要在命令模式下執行:
:r !date
當前時間就自動被導入了,任何命令的結果導入到當前編輯文件中,格式爲:
:r !命令
3、助力編程的查詢功能
以前在Linux系統下寫一些C語言程序,有時記性不好,忘記了語法格式,使用Vim/Vi編寫時可直接查詢。如寫程序寫到fork時,突然失憶了(失
去了對這個東東的記憶),就可以直接把光標移動到fork上,按“K”(大寫的K),直接就會跳到Linux程序員手冊,看到fork的幫助,看完後回車
繼續編寫。
4、配置文件.vimrc
前面提到的快捷鍵、ab命令等的應用,設置後只在當前編輯文件中有效,如果想讓它永久生效需要編輯用戶宿主目錄下的.vimrc文件,如你是root用戶,則編輯/root/.vimrc(此文件默認不存在)。
寫入你常用的設置命令即可,如:
:set nu
:map ^M [email protected]
:ab sammail [email protected]
……
以後就永久生效了。