VIM的三種模式

VIM 小抄圖
vim小抄.png
VIM具體操作
進入vi的指令
vi filename :打開或建立檔案,并将光标置于第一行首
vi +n filename :打開檔案,并将光标置于第n行首
vi + filename :打開檔案,并将光标置于最後一行首
vi +/pattern filename:打開檔案,并将光标置于第一個與pattern比對的串處
vi -r filename :在上次正用vi編輯時發生系統崩潰,恢複filename
vi filename....filename :打開多個檔案,依次進行編輯
移動光标指令
- 操作在指令模式下
j 或下箭頭 向下移動一行
k 或上箭頭 向上移動一行
h 或左箭頭 左移一個字元
l 或右箭頭 右移一個字元
w 右移一個詞
W 右移一個以空格分隔的詞
b 左移一個詞
B 左移一個以空格分隔的詞
0 移到行首
Ctrl-F 向前翻頁
Ctrl-B 向後翻頁
nG 到第n行
G 到最後一行
插入文本指令
i 在目前字元前插入文本
I 在行首插入文本
a 在目前字元後添加文本
A 在行末添加文本
o 在目前行後面插入一空行
O 在目前行前面插入一空行
R 以改寫方式輸入文本
替換文本
$ 到行尾
( 到句子的開頭
) 到句子的末尾
{ 到段落的開頭
} 到段落的末尾
文本操作
- 在指令模式下
r 替換一個字元
c 修改文本直到按下Esc健
cw 修改下一個詞
cnw 修改接下來的n個詞
删除操作
x 删除光标處的單個字元
dd 删除光标所在行
dw 删除目前字元到單詞尾(包括空格)的所有字元
de 删除目前字元到單詞尾(不包括單詞尾部的空格)的所有字元
d$ 删除目前字元到行尾的所有字元
d^ 删除目前字元到行首的所有字元
J 删除光标所在行行尾的換行符,相當于合并目前行和下一行的内容
文本編輯
yy 将一行文本移到預設緩沖區中
yn 将下一個詞移到預設緩沖區中
ynw 将後面的n個詞移到預設緩沖區中
p 如果預設緩沖區中包含一行文本,則在目前
行後面插入一個空行井将預設緩沖區中的聲
容粘貼到這一行中;如果預設緩沖區中包含
多個詞,把這些詞粘貼到光标的右邊.
P 如果預設緩沖區中包含一行文本,則正目前
行前面插入一個空行井将預設緩沖區中的内
容粘貼到這一行中;如果預設緩沖區中包含
多個詞,把這些詞粘貼到光标的左邊.
儲存退出
zz 儲存并退出(在指令行模式下)
在末行模式下:
:w filename 寫入檔案
:W 寫入檔案
:x 儲存(如果目前檔案修改過)并退出
:q! 不儲存檔案,直接退出(強制退出)
:q 退出vi
編輯模式的編輯鍵操作
方向鍵進行上下左右方向的光标移動
Home快速定位光标到行首
End快速定位光标到行尾
PageUp進行文本的向上翻頁
PageDown進行文本的向下翻頁
Backspace删除光标左側的字元
Del删除光标位置的字元
替換操作
- 在末行模式下
: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 在替換指令末尾加入c指令,将對每個替換動作提示使用者進行确認
撤消操作
u 取消最近一次的操作,并恢複操作結果,可以多次使用u指令恢複已進行的多步操作
U 取消對目前行進行的所有操作
Ctrl + r 對使用u指令撤銷的操作進行恢複
複制與粘貼操作
yy 複制目前行整行的内容到vi緩沖區
yw 複制目前光标到單詞尾字元的内容到vi緩沖區
y$ 複制目前光标到行尾的内容到vi緩沖區
y^ 複制目前光标到行首的内容到vi緩沖區
p 讀取vi緩沖區中的内容,并粘貼到光标目前的位置(不覆寫檔案已有的内容)
字元串查找操作
/word 從上而下在檔案中查找字元串“word”
?word 從下而上在檔案中查找字元串“word”
n 定位下一個比對的被查找字元串
N 定位上一個比對的被查找字元串
快捷鍵
ctrl-a : 把光标移動到指令行最開始的地方。
ctrl-e : 把光标移動到指令行末尾。
ctrl-u : 清除指令行中光标所處位置之前的所有字元。
ctrl-k : 清除從提示符所在位置到行末尾之間的字元
ctrl-w : 清除左邊的字段
ctrl-y : 将會貼上被ctrl-u 或者 ctrl-k 或者 ctrl-w清除的部分。
ctrl-r : 将自動在指令曆史緩存中增量搜尋後面入的字元。
tab : 指令行自動補全-自動補全目前的指令行。如果啟用自動補全腳本指令參數和選項也可以自動補齊。
ctrl-l : 清屏