本文以Linux操作系統(tǒng)為測(cè)試環(huán)境,并且要求對(duì)vim有些許了解,如果對(duì)vim完全沒有概念,建議在命令行下輸入vimtutor獲取vim的入門教程,花一個(gè)小時(shí)左右即可入門。
我對(duì)vim的定位
據(jù)我了解,在命令行時(shí)代,如果根據(jù)編輯器的使用給程序員分類,幾乎大致可以分為vim和Emacs兩大陣營(yíng)。我在剛剛接觸文本編輯器的時(shí)候,也被灌輸著必須二選一的思想。誠(chéng)如傳言,vim確實(shí)很重要,只要接觸Linux而不使用vim是不可能的,而Emacs的組合命令讓我實(shí)在無(wú)法忍受,所以即使Emacs很強(qiáng)大,還沒開始學(xué)我就決定放棄它了。
在折騰vim很長(zhǎng)時(shí)間之后,特別是接觸了Atom、Sublime Text、VS code等新興文本編輯器之后,我又得出了一個(gè)結(jié)論:vim不適合這個(gè)時(shí)代。也許有很多高手和老黑客還在青睞vim,他們已經(jīng)把vim玩得很6了,甚至離不開vim了,但是我必須承認(rèn)有很多更好用的編輯器,我不想再折騰這個(gè)老古董了。
但是vim是又是必須的,它是一個(gè)很好用的輔助工具,因?yàn)橐坏┪覀兪煜ち藇im的使用,就可以在很多地方包括以上提到的新興編輯器使用,而vim也確實(shí)是一個(gè)高效的工作方式。我一直在使用vim,在Linux下,我使用vim編輯小文件,在瀏覽器端,我使用vimuim插件支持vim快捷鍵,而我在使用新興編輯器的時(shí)候,我依然是使用vim的鍵盤快捷方式。高效的輔助工具,這是我對(duì)vim的定位。
這個(gè)定位也是我寫本文的原因。網(wǎng)上有很多vim的教程,但是講的都很仔細(xì),我也看了一遍又一遍,但是到頭來(lái),我發(fā)現(xiàn)我記住的還是那么多,因?yàn)槲抑挥媚敲炊唷N蚁胪ㄟ^(guò)本文總結(jié)我在使用vim的時(shí)候用到的東西,而且是常用的、不會(huì)忘記的東西。
簡(jiǎn)潔地使用vim
跳轉(zhuǎn)
h 向左移動(dòng)
k 向上移動(dòng)
j 向下移動(dòng)
l 向右移動(dòng)
H 移動(dòng)到屏幕的起始行
M 移動(dòng)到屏幕中間
L 移動(dòng)到屏幕的底行
gg 移動(dòng)到文檔首行
G 移動(dòng)到文檔尾行
NG N替換為數(shù)字,移動(dòng)到文檔的第N行
Ctrl + f 向下翻一頁(yè)
Ctrl + b 向上翻一頁(yè)
0 移動(dòng)到行頭
$ 移動(dòng)到行尾
搜索匹配
普通匹配如下,在命令模式下,先輸入/,再輸入str即可匹配到字符str,然后按n則匹配下一個(gè)str,按N匹配上一個(gè)str。而如果輸入的是?str,則n和N的功能相反,不管是/str還是?str,在匹配到文始或者文末之后,都會(huì)從頭開始。
/str 向下搜索匹配字符str
?str 向上搜索匹配字符str
而想要更精確的匹配,就要用到正則表達(dá)式匹配,基本使用如下,正則表達(dá)式的高級(jí)語(yǔ)法請(qǐng)自行百度。
:/str/ 正則表達(dá)式匹配字符str
替換與刪除
r 替換單個(gè)字母
R 從當(dāng)前字母開始替換
x 刪除一個(gè)字母
dw 刪除一個(gè)單詞
dd 刪除一行
d$ 從當(dāng)前刪除到行末
d0 從當(dāng)前刪除到行頭
J 刪除本行的回車符,將本行與下一行合并
插入
i 在當(dāng)前光標(biāo)前插入
a 在當(dāng)前光標(biāo)后插入
o 在本行的下面新建一行并進(jìn)入編輯模式
O 在本行的上面新建一行并進(jìn)入編輯模式
復(fù)制粘貼
yy 復(fù)制本行
p 在光標(biāo)后面粘貼
P 在光標(biāo)前面粘貼
更常用的做法是,在命令模式下,先按v進(jìn)入可視模式,利用上面講到的跳轉(zhuǎn)命令選擇文本,被選擇的文本背景會(huì)反白,選擇好要復(fù)制的文本后,按下y即可復(fù)制反白文本。
撤銷與重復(fù)
u 撤銷上一次操作,常用
. 恢復(fù)操作
打開、保存、退出
:w 保存而不退出
:w filename 保存副本
:q 退出vim
:q! 強(qiáng)制退出,不保存
:wq 保存并退出
:e path/file 在vim中打開文件
:f file 重命名文件
其他命令
:set nu 顯示行號(hào)
:syntax on 開啟語(yǔ)法高亮
:set option命令常常用來(lái)設(shè)置vim的界面與相關(guān)配置,如上兩條配置命令只會(huì)臨時(shí)起作用,而退出vim之后就會(huì)失效,所以最好的做法是,在用戶主目錄下新建一個(gè).vimrc文件,并把自己的配置選項(xiàng)寫入文件中,這樣vim就知道如何初始化自己了。
:f 或者 Ctrl + G 顯示狀態(tài)欄,這對(duì)于想看文件名很有用
:!cm 其中cm為shell命令,這允許我們?cè)趘im中運(yùn)行shell命令
還有一些命令,我不常用,但是我認(rèn)為可以了解,如下:
:sp 上下分屏
:vsp 左右分屏
Ctrl + w + h 切換到左邊屏
Ctrl + w + j 切換到下邊屏
Ctrl + w + k 切換到上邊屏
Ctrl + w + l 切換到右邊屏
其實(shí)Ctrl + w可以在不同的屏之間按順序切換。
總結(jié)
這是我對(duì)自己使用vim的總結(jié),我認(rèn)為對(duì)于vim,我知道這些就夠了,希望對(duì)你們有所幫助,發(fā)現(xiàn)錯(cuò)誤歡迎指正,有意見歡迎反饋。