簡潔地使用 vim

我的饭發表於2024-05-06

突然翻到大學期間寫的博文,重新在此釋出。

前言

本文以 Linux 作業系統為測試環境,並且要求對 vim 有些許瞭解,如果對 vim 完全沒有概念,建議在命令列下輸入 vimtutor 獲取 vim 的入門教程,花一個小時左右即可入門。

我對 vim 的定位

據我瞭解,在命令列時代,如果根據編輯器的使用給程式設計師分類,幾乎大致可以分為 vim 和 Emacs 兩大陣營。我在剛剛接觸文字編輯器的時候,也被灌輸著必須二選一的思想。誠如傳言,vim 確實很重要,只要接觸 Linux 而不使用 vim 是不可能的,而 Emacs 的組合命令讓我實在無法忍受,所以即使 Emacs 很強大,還沒開始學我就決定放棄它了。

在折騰 vim 很長時間之後,特別是接觸了 Atom、Sublime Text、VS code 等新興文字編輯器之後,我又得出了一個結論:vim 不適合這個時代。也許有很多高手和老駭客還在青睞 vim,他們已經把 vim 玩得很 6 了,甚至離不開 vim 了,但是我必須承認有很多更好用的編輯器,我不想再折騰這個老古董了。

但是 vim 是又是必須的,它是一個很好用的輔助工具,因為一旦我們熟悉了 vim 的使用,就可以在很多地方包括以上提到的新興編輯器使用,而 vim 也確實是一個高效的工作方式。我一直在使用 vim,在 Linux 下,我使用 vim 編輯小檔案,在瀏覽器端,我使用 vimuim 外掛支援 vim 快捷鍵,而我在使用新興編輯器的時候,我依然是使用 vim 的鍵盤快捷方式。高效的輔助工具,這是我對 vim 的定位。

這個定位也是我寫本文的原因。網上有很多 vim 的教程,但是講的都很仔細,我也看了一遍又一遍,但是到頭來,我發現我記住的還是那麼多,因為我只用那麼多。我想透過本文總結我在使用 vim 的時候用到的東西,而且是常用的、不會忘記的東西。

簡潔地使用 vim

跳轉

h          向左移動
k          向上移動
j          向下移動
l          向右移動
H          移動到螢幕的起始行
M          移動到螢幕中間
L          移動到螢幕的底行
gg         移動到文件首行
G          移動到文件尾行
NG         N替換為數字,移動到文件的第N行
Ctrl + f   向下翻一頁
Ctrl + b   向上翻一頁
0          移動到行頭
$          移動到行尾

搜尋匹配

普通匹配如下,在命令模式下,先輸入/,再輸入 str 即可匹配到字元 str,然後按 n 則匹配下一個 str,按 N 匹配上一個 str。而如果輸入的是?str,則 n 和 N 的功能相反,不管是/str 還是?str,在匹配到文始或者文末之後,都會從頭開始。

/str          向下搜尋匹配字元str
?str          向上搜尋匹配字元str

而想要更精確的匹配,就要用到正規表示式匹配,基本使用如下,正規表示式的高階語法請自行百度。

:/str/        正規表示式匹配字元str

替換與刪除

r          替換單個字母
R          從當前字母開始替換
x          刪除一個字母
dw         刪除一個單詞
dd         刪除一行
d$         從當前刪除到行末
d0         從當前刪除到行頭
J          刪除本行的回車符,將本行與下一行合併

插入

i          在當前游標前插入
a          在當前游標後插入
o          在本行的下面新建一行並進入編輯模式
O          在本行的上面新建一行並進入編輯模式

複製貼上

yy          複製本行
p           在游標後面貼上
P           在游標前面貼上

更常用的做法是,在命令模式下,先按 v 進入可視模式,利用上面講到的跳轉命令選擇文字,被選擇的文字背景會反白,選擇好要複製的文字後,按下 y 即可複製反白文字。

撤銷與重複

u            撤銷上一次操作,常用
.            恢復操作

開啟、儲存、退出

:w            儲存而不退出
:w filename   儲存副本
:q            退出vim
:q!           強制退出,不儲存
:wq           儲存並退出
:e path/file  在vim中開啟檔案
:f file       重新命名檔案

其他命令

:set nu          顯示行號
:syntax on       開啟語法高亮

:set option 命令常常用來設定 vim 的介面與相關配置,如上兩條配置命令只會臨時起作用,而退出 vim 之後就會失效,所以最好的做法是,在使用者主目錄下新建一個.vimrc 檔案,並把自己的配置選項寫入檔案中,這樣 vim 就知道如何初始化自己了。

:f 或者 Ctrl + G          顯示狀態列,這對於想看檔名很有用
:!cm                      其中cm為shell命令,這允許我們在vim中執行shell命令

還有一些命令,我不常用,但是我認為可以瞭解,如下:

:sp                  上下分屏
:vsp                 左右分屏
Ctrl + w + h         切換到左邊屏
Ctrl + w + j         切換到下邊屏
Ctrl + w + k         切換到上邊屏
Ctrl + w + l         切換到右邊屏

其實 Ctrl + w 可以在不同的屏之間按順序切換。

總結

這是我對自己使用 vim 的總結,我認為對於 vim,我知道這些就夠了,希望對你們有所幫助,發現錯誤歡迎指正,有意見歡迎反饋。

相關文章