vi是是類unix系統(tǒng)下最受歡迎的兩個(gè)編輯器之一,另一個(gè)是Emacs。vi的作者是Bill Joy江滨,Vim可以看成是vi的升級(jí)版,因?yàn)樗耆嫒輛i娘锁,它的作者是Bram Moolenaar牙寞。vi/vim的學(xué)習(xí)曲線比較陡峭,不過(guò)一旦熟練掌握后莫秆,可以大大提高編輯效率间雀。
下面我們簡(jiǎn)單學(xué)習(xí)一下Vim的使用:
vi/vim的模式
1. 命令模式(瀏覽模式)
默認(rèn)打開(kāi)文件時(shí)就是命令模式
控制屏幕光標(biāo)的移動(dòng),刪除字符镊屎、字或行等惹挟。
2. 插入模式
英語(yǔ)輸入法下摁下您的"i"鍵
只有在Insert mode下,才可以做文字輸入缝驳,按[ESC
]鍵可回到命令行模式
3. 底行模式
在命令行模式和英語(yǔ)輸入法下摁 shift+:
可以保存文件连锯、退出vi、設(shè)置vi用狱、查找等功能
部分功能使用說(shuō)明
一运怖、打開(kāi)文件、保存夏伊、關(guān)閉文件(“命令模式”下使用)
vi filename //打開(kāi)filename文件
:w //保存文件
:w 1.txt //保存至1.txt文件
:q //退出編輯器
:q! //退出編輯器摇展,且不保存
:wq //退出編輯器,且保存文件
:x //保存內(nèi)容并退出
二溺忧、插入文本或行(在“命令模式”下使用咏连,執(zhí)行下面命令后將進(jìn)入“插入模式”盯孙,按ESC鍵可退出“插入模式”)
a //在當(dāng)前光標(biāo)位置的右邊添加文本
i //在當(dāng)前光標(biāo)位置的左邊添加文本
A //在當(dāng)前行的末尾位置添加文本
I //在當(dāng)前行的開(kāi)始處添加文本(非空字符的行首)
O //在當(dāng)前行的上面新建一行
o //在當(dāng)前行的下面新建一行
R //替換(覆蓋)當(dāng)前光標(biāo)位置及后面的若干文本
J //合并光標(biāo)所在行及下一行為一行(依然在命令模式)
三、移動(dòng)光標(biāo)(“命令模式”下使用)
1祟滴、使用上下左右方向鍵
2振惰、命令模式下:
h //向左
j //向下
k //向上
l //向右
空格鍵 //向右
Backspace //向左
Enter //移動(dòng)到下一行首
- //移動(dòng)到上一行首
四、刪除垄懂、恢復(fù)字符或行(“命令模式”下使用)
x //刪除當(dāng)前字符
nx //刪除從光標(biāo)開(kāi)始的n個(gè)字符
dd //刪除當(dāng)前行
ndd //向下刪除當(dāng)前行在內(nèi)的n行
u //撤銷上一步操作
ctrl+R //反撤銷骑晶,和u的功能相反
U //撤銷對(duì)當(dāng)前行的所有操作
五、搜索(“底行模式”下使用)
/str //向光標(biāo)下搜索str字符串
?str //向光標(biāo)上搜索str字符串
n //向下搜索前一個(gè)搜素動(dòng)作
N //向上搜索前一個(gè)搜索動(dòng)作
六埠偿、跳至指定行(“命令模式”下使用)
n+ //向下跳n行
n- //向上跳n行
nG //跳到行號(hào)為n的行
G //跳至文件的底部
七透罢、設(shè)置行號(hào)(“底行模式”下使用)
:set nu //顯示行號(hào)
:set nonu //取消顯示行號(hào)
八、復(fù)制冠蒋、粘貼(“命令模式”下使用)
yy //將當(dāng)前行復(fù)制到粘貼板緩沖區(qū)羽圃,也可以用 "ayy 復(fù)制,"a 為粘貼板緩沖區(qū)抖剿,a也可以替換為a到z的任意字母朽寞,可以完成多個(gè)復(fù)制任務(wù)。
nyy //將當(dāng)前行向下n行復(fù)制到粘貼板緩沖區(qū)斩郎,也可以用 "anyy 復(fù)制脑融,"a 為粘貼板緩沖區(qū),a也可以替換為a到z的任意字母缩宜,可以完成多個(gè)復(fù)制任務(wù)肘迎。
yw //復(fù)制從光標(biāo)開(kāi)始到詞尾的字符。
nyw //復(fù)制從光標(biāo)開(kāi)始的n個(gè)單詞锻煌。
y^ //復(fù)制從光標(biāo)到行首的內(nèi)容妓布。
y$ //復(fù)制從光標(biāo)到行尾的內(nèi)容。
p //粘貼剪切板里的內(nèi)容在光標(biāo)后宋梧,如果使用了前面的自定義緩沖區(qū)匣沼,建議使用"ap 進(jìn)行粘貼。
P //粘貼剪切板里的內(nèi)容在光標(biāo)前捂龄,如果使用了前面的自定義緩沖區(qū)释涛,建議使用"aP 進(jìn)行粘貼。
九倦沧、替換(“命令模式”下使用)
:s/old/new //用new替換行中首次出現(xiàn)的old
:s/old/new/g //用new替換行中所有的old
:n,m s/old/new/g //用new替換從n到m行里所有的old
:%s/old/new/g //用new替換當(dāng)前文件里所有的old
十唇撬、編輯其他文件
:e otherfilename //新建一個(gè)文件名為otherfilename的文件。