1. 程式人生 > 其它 >linux vi編輯器詳解

linux vi編輯器詳解

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(大寫)    第一次會撤銷對一行文字(游標所在行)做過的全部操作,第二次使用該命令會恢復對該行文字做過的所有操作