Vim 有兩種編輯模式,一種是編輯模式,一種是普通模式。 如果要在使用 vim 命令開啟檔案並編輯檔案後儲存並退出檔案:
步驟1: 您需要按 Esc 鍵退出編輯模式並返回正常模式。 esc 鍵是鍵盤左上角的鍵。
步驟2:在正常模式下,輸入:wq命令,儲存並退出。 請注意,此處的 :wq 需要三個字元。 第乙個需要先按住shift鍵,然後再按L鍵右側的鍵。 第二種是按w鍵,第三種是按q鍵,輸入:wq後(可以在編輯器頁面底部看到輸入的:wq),然後點選回車鍵儲存退出。
Vim 經常因為其極高的學習門檻而勸阻很多新手,但這主要是因為市面上缺乏好的 vim 教程,其實只要按照合理的順序學習,vim 並不難,而且效率極高。 有很多人連vim的基本用法都搞不懂,就急著學習各種外掛程式,最後什麼都看不懂,然後吐槽是垃圾工具。
我將把 vim 分為四章,它們是:
vim 的基本操作,即 vim 附帶的功能,不需要任何安裝。
Vim 自帶高階操作、配置檔案配置,例如如何在 vim 中配置各種對映等。
安裝和使用 VIM 的各種外掛程式。
vim 和各種工具的配合,這個是可以理解的,用 vscode 呼叫 vim 自帶這部分函式。
這四章是漸進的關係,要學好上一章,才能學會使用下一章。
vim 有問題
VIM要求肌肉記憶要熟練使用,如果有任何問題可以到我建立的QQ群“361863861”提問,有些操作經過實驗後不懂,可以討論。
我用的是最新版本的vim,vim8,使用vim與作業系統無關,ubuntu、centos等,可以使用vim--version檢視vim的版本,如果是vim7,建議公升級到vim8,vim7可能在某些功能上不支援。
1-1 初次接觸 vim:我從裸露的 vim 開始配置。
1)輸入vim進入vim,輸入vim檔名,可以使用vim編輯檔案。進入正常模式後,你不能輸入任何內容,使用 :q 退出 vim。
2)要編輯檔案,必須進入編輯模式,輸入i(插入)進入編輯模式,輸入a(append)和o(在下面開一行)進入編輯模式。I 表示在游標位置插入,a 表示在游標後面的位置插入,o 表示插入電流的下一行。 為了提高編輯效率,i、a、o也可以進入編輯模式,i表示從行前開始編輯,a表示從行後開始編輯。
因此,使用 i、i、a、a、o 和 o 都可以以不同的方式進入編輯模式。
3)在編輯模式下,按esc鍵返回正常模式,輸入:q退出vim,輸入:wq儲存檔案,然後退出。
4)注意:如果檔案已被修改,您將無法通過鍵入:q退出檔案,您必須輸入:wq儲存並退出,或者鍵入:q!如果您不儲存,請強制退出。
1-2vim 模式介紹
1)很多新手會想,為什麼 vim 有這麼多模式,而 vim 應該拿出普通模式而不是編輯模式?
Vim 有這麼多模式,以提高工作效率。
Vim 是以規範模式出現的,因為我們的大部分工作都是在正常模式下完成的,而編輯只是一小部分。
這兩點在大量使用 vim 之後會更有經驗。
2)Vim最初處於正常模式,輸入:可以進入命令模式。在正常模式下鍵入 :q 退出 vim 實質上是在命令模式下鍵入 q 退出 vim。 在命令模式下按 esc 退出命令模式。
在正常模式下,按V鍵進入視覺化模式,按ESC鍵返回正常模式。
1-3vim 編輯技巧
1)在編輯模式下,我們可以使用快捷鍵來修改我們編輯和修改的部分中的字元。
Ctrl + H 刪除游標前面的字元。
Ctrl + W 刪除游標前面的單詞。
Ctrl + U 刪除游標前面的所有內容。
2)在普通模式下,您可以使用hjkl代替箭頭鍵,hjkl分別代表左,下,上和右,這樣您就可以在不離開鍵盤的情況下移動游標。
3)在正常模式下,退出編輯模式時可以按gi鍵跳轉到游標所在的位置,進入編輯模式。
如何在 1-4normal 模式下移動游標
1)w w移動到下乙個單詞的開頭,e e移動到下乙個單詞的末尾,b b移動到上乙個單詞的開頭,其中小寫表示非字母被劃分為單位(如冒號、引號、逗號和空格是死單位),大寫表示單位被空格分隔。
2)行間字元搜尋移動,按f {char},可以快速移動到char,按;,可以移動到上乙個字元的下乙個字元 char。 f 表示從檔案開始搜尋字元,f 表示從檔案末尾開始搜尋字元。
3)如何快速移動到一行的開頭或結尾:0移動到一行的第乙個字元,$移動到一行的最後乙個字元。
4)頁面將gg g移動到檔案的開頭和結尾,可以使用ctrl+o快速返回,ngg可以快速跳轉到檔案的第n行。
HML 可以快速跳轉到螢幕的開頭、中間和結尾。
Ctrl + U,Ctrl + F,上下翻轉,zz 將當前行設定到螢幕中間。
1-5 VIM 內建快速新增、刪除、修改、修改、查詢
1) Vim Quick Delete:正常模式。
x 快速刪除游標後面的字元。
您可以將 d 與文字物件一起使用以快速刪除單詞,例如 daw(刪除單詞周圍)、dw、diw。 daw 代表刪除游標的單詞,包括單詞旁邊的空格。 dw 表示刪除游標後面的單詞,diw 表示刪除游標所在的單詞,但不包括單詞旁邊的空格。 dt{char} 表示從游標位置刪除的字元,在 char 之前。
2)在正常模式下快速修改vim。
常用的有三種,r(替換)、c(更改)和 s(替換)。
R 可以替換乙個字元,S 刪除當前字元並進入插入模式。
C可以配備乙個文字物件來快速修改乙個單詞,cw、ciw、caw只是在dw的基礎上,diw、daw同時刪除進入插入模式。
3)vim,查詢詞也是一種常見的操作。
使用還是? 要執行正向或反向搜尋,請使用 n n 跳轉到下乙個上乙個匹配項,例如 time 搜尋單詞 time,按 n 指示下乙個匹配項。
使用 * 匹配,將游標放在乙個單詞上,* 表示上乙個和下乙個相同的單詞。
1-6 如何替換 vim
vim 是: [range]s [flags]。
range 表示要替換的範圍,例如 10,20 表示 10-20 行,% 表示全部。
string1 表示要替換的字串。
string2 指示被替換的字串。
flags 表示標誌,常用的是 g(表示全域性執行),如果沒有 g,每行只會替換行中的第乙個匹配項。 c表示確認,我們可以在進行替換時選擇是否替換,n表示匹配次數,但不進行替換。
例如,%s my you g 將檔案中的所有 my 替換為 you。 此外,string1 和 string2 都支援正規表示式。