VIM的三種模式
VIM的三種模式
VIM 小抄圖
vim小抄.png
VIM具體操作
進(jìn)入vi的命令
vi filename :打開或新建文件,并將光標(biāo)置于第一行首
vi +n filename :打開文件兽肤,并將光標(biāo)置于第n行首
vi + filename :打開文件套腹,并將光標(biāo)置于最后一行首
vi +/pattern filename:打開文件,并將光標(biāo)置于第一個與pattern匹配的串處
vi -r filename :在上次正用vi編輯時發(fā)生系統(tǒng)崩潰资铡,恢復(fù)filename
vi filename....filename :打開多個文件电禀,依次進(jìn)行編輯
移動光標(biāo)命令
- 操作在命令模式下
j 或下箭頭 向下移動一行
k 或上箭頭 向上移動一行
h 或左箭頭 左移一個字符
l 或右箭頭 右移一個字符
w 右移一個詞
W 右移一個以空格分隔的詞
b 左移一個詞
B 左移一個以空格分隔的詞
0 移到行首
Ctrl-F 向前翻頁
Ctrl-B 向后翻頁
nG 到第n行
G 到最后一行
插入文本命令
- 操作在命令模式下
i 在當(dāng)前字符前插入文本
I 在行首插入文本
a 在當(dāng)前字符后添加文本
A 在行末添加文本
o 在當(dāng)前行后面插入一空行
O 在當(dāng)前行前面插入一空行
R 以改寫方式輸入文本
替換文本
$ 到行尾
( 到句子的開頭
) 到句子的末尾
{ 到段落的開頭
} 到段落的末尾
文本操作
- 在命令模式下
r 替換一個字符
c 修改文本直到按下Esc健
cw 修改下一個詞
cnw 修改接下來的n個詞
刪除操作
- 在命令模式下
x 刪除光標(biāo)處的單個字符
dd 刪除光標(biāo)所在行
dw 刪除當(dāng)前字符到單詞尾(包括空格)的所有字符
de 刪除當(dāng)前字符到單詞尾(不包括單詞尾部的空格)的所有字符
d$ 刪除當(dāng)前字符到行尾的所有字符
d^ 刪除當(dāng)前字符到行首的所有字符
J 刪除光標(biāo)所在行行尾的換行符,相當(dāng)于合并當(dāng)前行和下一行的內(nèi)容
文本編輯
yy 將一行文本移到缺省緩沖區(qū)中
yn 將下一個詞移到缺省緩沖區(qū)中
ynw 將后面的n個詞移到缺省緩沖區(qū)中
p 如果缺省緩沖區(qū)中包含一行文本笤休,則在當(dāng)前
行后面插入一個空行井將缺省緩沖區(qū)中的聲
容粘貼到這一行中尖飞;如果缺省緩沖區(qū)中包含
多個詞,把這些詞粘貼到光標(biāo)的右邊.
P 如果缺省緩沖區(qū)中包含一行文本店雅,則正當(dāng)前
行前面插入一個空行井將缺省緩沖區(qū)中的內(nèi)
容粘貼到這一行中政基;如果缺省緩沖區(qū)中包含
多個詞,把這些詞粘貼到光標(biāo)的左邊.
保存退出
zz 保存并退出(在命令行模式下)
在末行模式下:
:w filename 寫入文件
:W 寫入文件
:x 保存(如果當(dāng)前文件修改過)并退出
:q! 不保存文件底洗,直接退出(強(qiáng)制退出)
:q 退出vi
編輯模式的編輯鍵操作
方向鍵進(jìn)行上下左右方向的光標(biāo)移動
Home快速定位光標(biāo)到行首
End快速定位光標(biāo)到行尾
PageUp進(jìn)行文本的向上翻頁
PageDown進(jìn)行文本的向下翻頁
Backspace刪除光標(biāo)左側(cè)的字符
Del刪除光標(biāo)位置的字符
替換操作
- 在末行模式下
:s/old/new 將當(dāng)前行中查找到的第一個字符“old” 串替換為“new”
:s/old/new/g 將當(dāng)前行中查找到的所有字符串“old” 替換為“new”
:#,#s/old/new/g 在行號“#,#”范圍內(nèi)替換所有的字符串“old”為“new”
:%s/old/new/g 在整個文件范圍內(nèi)替換所有的字符串“old”為“new”
:s/old/new/c 在替換命令末尾加入c命令腋么,將對每個替換動作提示用戶進(jìn)行確認(rèn)
撤消操作
- 在命令模式下
u 取消最近一次的操作,并恢復(fù)操作結(jié)果亥揖,可以多次使用u命令恢復(fù)已進(jìn)行的多步操作
U 取消對當(dāng)前行進(jìn)行的所有操作
Ctrl + r 對使用u命令撤銷的操作進(jìn)行恢復(fù)
復(fù)制與粘貼操作
- 在命令模式下
yy 復(fù)制當(dāng)前行整行的內(nèi)容到vi緩沖區(qū)
yw 復(fù)制當(dāng)前光標(biāo)到單詞尾字符的內(nèi)容到vi緩沖區(qū)
y$ 復(fù)制當(dāng)前光標(biāo)到行尾的內(nèi)容到vi緩沖區(qū)
y^ 復(fù)制當(dāng)前光標(biāo)到行首的內(nèi)容到vi緩沖區(qū)
p 讀取vi緩沖區(qū)中的內(nèi)容珊擂,并粘貼到光標(biāo)當(dāng)前的位置(不覆蓋文件已有的內(nèi)容)
字符串查找操作
- 在命令模式下
/word 從上而下在文件中查找字符串“word”
?word 從下而上在文件中查找字符串“word”
n 定位下一個匹配的被查找字符串
N 定位上一個匹配的被查找字符串
快捷鍵
ctrl-a : 把光標(biāo)移動到命令行最開始的地方。
ctrl-e : 把光標(biāo)移動到命令行末尾费变。
ctrl-u : 清除命令行中光標(biāo)所處位置之前的所有字符摧扇。
ctrl-k : 清除從提示符所在位置到行末尾之間的字符
ctrl-w : 清除左邊的字段
ctrl-y : 將會貼上被ctrl-u 或者 ctrl-k 或者 ctrl-w清除的部分。
ctrl-r : 將自動在命令歷史緩存中增量搜索后面入的字符挚歧。
tab : 命令行自動補(bǔ)全-自動補(bǔ)全當(dāng)前的命令行扛稽。如果啟用自動補(bǔ)全腳本命令參數(shù)和選項也可以自動補(bǔ)齊。
ctrl-l : 清屏