一、什麼是vim
Vim是從 vi 發展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等友善程式設計的功能特别豐富,在程式員中被廣泛使用。
一、vim三種工作模式
- 指令模式:啟動vi編輯器後預設進入指令模式,該模式中主要完成如光标移動、字元串查找,以及删除、複制、粘貼檔案内容等相關操作;
- 輸入模式:該模式中主要的操作就是錄入檔案内容,可以對文本檔案正文進行修改、或者添加新的内容。處于輸入模式時,vi編輯器的最後一行會出現“–INSERT–”的狀态提示資訊;
- 末行模式:該模式中可以設定vi編輯環境、儲存檔案、退出編輯器,以及對檔案内容進行查找、替換等操作。處于末行模式時,vi編輯器的最後一行會出現冒号“:”提示符。
二、不同工作模式之間的切換
[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-LBbl0Oga-1630716700916)(C:\Users\yuanxianpei\AppData\Roaming\Typora\typora-user-images\1630591766801.png)]
三、指令模式切換至輸入模式
a | 在目前光标位置之後插入内容 |
---|---|
i | 在目前光标位置之前插入内容 |
I | 在所在行的行首插入内容 |
o | 在光标所在行之下插入一個新行内容 |
O | 在光标所在行之上插入一個新行内容 |
A | 在所在行的行尾插入内容 |
四、指令模式中的基本操作
操作類型 | 操作鍵 | 功能 |
---|---|---|
翻頁操作 | Page Down鍵或 Ctrl + F | 向下翻動一整頁内容 |
Page Up鍵或Ctrl + B | 向上翻動一整頁内容 | |
行内快速跳轉 | Home鍵或^鍵、數字0鍵 | 跳轉到本行的行首 |
End鍵或者$鍵 | 跳轉到本行的行尾 | |
行間快速跳轉 | 1G或者gg | 轉到檔案内容的第一行 |
G | 跳轉到檔案的最後一行 | |
#G | 跳轉到檔案的第#行(#用具體的數字替換) | |
M | 跳轉到目前頁的中間位置 | |
顯示行号 | :set nu | 在編輯器中顯示行号 |
:set nonu | 取消行号顯示 | |
删除 | x或Delete鍵 | 删除光标處的單個字元 |
dd | 删除目前光标所在行(有剪切功能) | |
#dd | 删除從光标處開始的#行内容 | |
d^ | 删除目前光标之前到行首的所有字元 | |
d$ | 删除目前光标處到行尾的所有字元 | |
dw | 删除目前光标處的整個單詞 | |
替換字元 | R或Shift+r | 替換目前光标處字元 |
複制 | yy | 複制目前行整行的内容到剪切闆 |
#yy | 複制從光标處開始的#行内容 | |
粘貼 | p | 粘貼到光标所在行之下 |
P | 粘貼到光标所在行之上 | |
查找 | / word | 從目前光标處開始向後進行查找字元串“word” |
?word | 從目前光标處開始向前進行查找字元串“word” | |
n | 定位下一個比對的被查找字元串 | |
N | 定位上一個比對的被查找字元串 | |
U | 用于取消對目前行所做的所有編輯 | |
儲存退出 | :w | 儲存修改的内容 |
:w 新檔案名 | 另存為其他檔案 | |
:q | 退出 | |
q! | 放棄對檔案内容的修改并退出 | |
ZZ或wq、:x | 儲存目前的檔案内容并退出vi編輯器 | |
打開新檔案 | :e 其他檔案名 | 打開新的檔案進行編輯 |
讀入檔案内容 | :r 其他檔案名 | 在目前檔案中讀入其他檔案内容 |
檔案内容替換 | :s /old/new | 将目前行中查找的第一個字元串“old”替換為:“new” |
:s old/new/g | 将目前行中查找的所有字元串“old”替換為“new” | |
:#,# s/old/new/g | 将行号#,#範圍内替換所有的字元串“old”為“new” | |
:% s/old/new/g | 将整個檔案範圍内的所有字元串的“old”換為“new” | |
:s old/new/c | 對每個替換動作進行使用者确認 | |
複制/剪切/粘貼 | :5,10 m 15 | 将5-10行的内容剪切到15行下面 |
:5,10 co 15 | 将5-10行的内容複制到15行下面 |