VIM的三種模式
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 : 清屏