linux vi編輯器詳解
阿新 • • 發佈:2021-07-20
Vim文字編輯器,是由 vi 發展演變過來的文字編輯器,因其具有使用簡單、功能強大、是 Linux 眾多發行版的預設文字編輯器
Vim三種工作模式
Vim的命令模式
使用 Vim 編輯檔案時,預設處於命令模式。此模式下,可使用方向鍵(上、下、左、右鍵)或 k、j、h、i 移動游標的位置,還可以對檔案內容進行復制、貼上、替換、刪除等操作。
Vim的輸入模式
使 Vim 進行輸入模式的方式是在命令模式狀態下輸入 i、I、a、A、o、O 等插入命令(各指令的具體功能如表 3 所示),當編輯檔案完成後按 Esc 鍵即可返回命令模式。
Vim 的編輯模式
編輯模式用於對檔案中的指定內容執行儲存、查詢或替換等操作。
Vim基本操作
開啟檔案
vim 1.txt
插入文字
命令模式輸入
i 在當前游標所在位置插入隨後輸入的文字,游標後的文字相應向右移動
I 在游標所在行的行首插入隨後輸入的文字,行首是該行的第一個非空白字元,相當於游標移動到行首執行 i 命令
o 在游標所在行的下面插入新的一行。游標停在空行首,等待輸入文字
O(大寫) 在游標所在行的上面插入新的一行。游標停在空行的行首,等待輸入文字
a 在當前游標所在位置之後插入隨後輸入的文字
A 在游標所在行的行尾插入隨後輸入的文字,相當於游標移動到行尾再執行 a 命令
查詢文字
/abc 從游標所在位置向前查詢字串 abc /^abc 查詢以 abc 為行首的行 /abc$ 查詢以 abc 為行尾的行 ?abc 從游標所在為主向後查詢字串 abc n 向同一方向重複上次的查詢指令 N 向相反方向重複上次的查詢指定
替換文字
r 替換游標所在位置的字元
R 從游標所在位置開始替換字元,其輸入內容會覆蓋掉後面等長的文字內容,按“Esc”可以結束
:s/a1/a2/g 將當前游標所在行中的所有 a1 用 a2 替換
:n1,n2s/a1/a2/g 將檔案中 n1 到 n2 行中所有 a1 都用 a2 替換
:g/a1/a2/g 將檔案中所有的 a1 都用 a2 替換
要將某檔案中所有的 "root" 替換為 "huyongjian"
:1, $s/root/huyongjian/g
:%s/root/huyongjian/g
刪除文字
x 刪除游標所在位置的字元 dd 刪除游標所在行 ndd 刪除當前行(包括此行)後 n 行文字 dG 刪除游標所在行一直到檔案末尾的所有內容 D 刪除游標位置到行尾的內容 :a1,a2d 函式從 a1 行到 a2 行的文字內容
複製和貼上文字
p 將剪貼簿中的內容貼上到游標後
P(大寫) 將剪貼簿中的內容貼上到游標前
y 複製已選中的文字到剪貼簿
yy 將游標所在行復制到剪貼簿,此命令前可以加數字 n,可複製多行
yw 將游標位置的單詞複製到剪貼簿
儲存退出文字
:wq 儲存並退出 Vim 編輯器
:wq! 儲存並強制退出 Vim 編輯器
:q 不儲存就退出 Vim 編輯器
:q! 不儲存,且強制退出 Vim 編輯器
:w 儲存但是不退出 Vim 編輯器
:w! 強制儲存文字
:w filename 另存到 filename 檔案
x! 儲存文字,並退出 Vim 編輯器,更通用的一個 vim 命令
ZZ 直接退出 Vim 編輯器
移動游標快捷鍵
方向鍵
h 游標向左移動一位
j 游標向下移動一行(以回車為換行符),也就是游標向下移動
k 游標向上移動一行(也就是向上移動)
l 游標向右移動一位
游標以單詞為單位移動
w 或 W 游標移動至下一個單詞的單詞首
b 或 B 游標移動至上一個單詞的單詞首
e 或 E 游標移動至下一個單詞的單詞尾
nw 或 nW n 為數字,表示游標向右移動 n 個單詞
nb 或 nB n 為數字,表示游標向左移動 n 個單詞
游標移動至行首或行尾
0 或 ^ 游標移動至當前行的行首
$ 游標移動至當前行的行尾
n$ 游標移動至當前行只有 n 行的行尾,n為數字
游標移動到指定行
gg 游標移動到檔案開頭
G 游標移動至檔案末尾
nG 游標移動到第 n 行,n 為數字
:n 編輯模式下使用的快捷鍵,可以將游標快速定義到指定行的行首
撤銷和恢復撤銷
u(小寫) undo 的第 1 個字母,功能是撤銷最近一次對文字做的修改操作。
Ctrl+R Redo 的第 1 個字母,功能是恢復最近一次所做的撤銷操作。
U(大寫) 第一次會撤銷對一行文字(游標所在行)做過的全部操作,第二次使用該命令會恢復對該行文字做過的所有操作