簡(jiǎn)潔地使用vim

本文以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ò)誤歡迎指正,有意見歡迎反饋。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容