vi(vim)是上Linux非常常用的編輯器,很多Linux發(fā)行版都默認(rèn)安裝了vi(vim)。vi(vim)命令繁多但是如果使用靈活之后將會(huì)大大提高效率。vi是“visual interface”的縮寫,vim是vi IMproved(增強(qiáng)版的vi)。在一般的系統(tǒng)管理維護(hù)中vi就夠用,如果想使用代碼加亮的話可以使用vim。下面vps偵探整理一下vi的使用教程:包含vi的基本介紹、使用模式、文件的打開關(guān)閉保存、插入文本或新建行、移動(dòng)光標(biāo)、刪除、恢復(fù)字符或行、搜索等等,算是一篇比較適合新手學(xué)習(xí)vi的教程。
vi有3個(gè)模式:插入模式、命令模式、低行模式。
●插入模式:在此模式下可以輸入字符,按ESC將回到命令模式。
●命令模式:可以移動(dòng)光標(biāo)、刪除字符等。
●低行模式:可以保存文件、退出vi、設(shè)置vi、查找等功能(低行模式也可以看作是命令模式里的)。
一、打開文件、保存、關(guān)閉文件(vi命令模式下使用)
vi filename //打開filename文件
:w //保存文件
:w vpser.net //保存至vpser.net文件
:q //退出編輯器,如果文件已修改請(qǐng)使用下面的命令
:q! //退出編輯器,且不保存
:wq //退出編輯器,且保存文件
二、插入文本或行(vi命令模式下使用,執(zhí)行下面命令后將進(jìn)入插入模式,按ESC鍵可退出插入模式)
a //在當(dāng)前光標(biāo)位置的右邊添加文本
i //在當(dāng)前光標(biāo)位置的左邊添加文本
A //在當(dāng)前行的末尾位置添加文本
I //在當(dāng)前行的開始處添加文本(非空字符的行首)
O //在當(dāng)前行的上面新建一行
o //在當(dāng)前行的下面新建一行
R //替換(覆蓋)當(dāng)前光標(biāo)位置及后面的若干文本
J //合并光標(biāo)所在行及下一行為一行(依然在命令模式)
三、移動(dòng)光標(biāo)(vi命令模式下使用)
1、使用上下左右方向鍵
2、命令模式下:h 向左、j 向下 、k 向上、l 向右。
空格鍵 向右、Backspace 向左、Enter 移動(dòng)到下一行首、- 移動(dòng)到上一行首。
四、刪除、恢復(fù)字符或行(vi命令模式下使用)
x //刪除當(dāng)前字符
nx //刪除從光標(biāo)開始的n個(gè)字符
dd //刪除當(dāng)前行
ndd //向下刪除當(dāng)前行在內(nèi)的n行
u //撤銷上一步操作
U //撤銷對(duì)當(dāng)前行的所有操作
五、搜索(vi命令模式下使用)
/vpser //向光標(biāo)下搜索vpser字符串
?vpser //向光標(biāo)上搜索vpser字符串
n //向下搜索前一個(gè)搜素動(dòng)作
N //向上搜索前一個(gè)搜索動(dòng)作
六、跳至指定行(vi命令模式下使用)
n+ //向下跳n行
n- //向上跳n行
nG //跳到行號(hào)為n的行
G //跳至文件的底部
七、設(shè)置行號(hào)(vi命令模式下使用)
:set nu //顯示行號(hào)
:set nonu //取消顯示行號(hào)
八、復(fù)制、粘貼(vi命令模式下使用)
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)開始到詞尾的字符。
nyw //復(fù)制從光標(biāo)開始的n個(gè)單詞。
y^ //復(fù)制從光標(biāo)到行首的內(nèi)容。 VPS偵探
y$ //復(fù)制從光標(biāo)到行尾的內(nèi)容。
p //粘貼剪切板里的內(nèi)容在光標(biāo)后,如果使用了前面的自定義緩沖區(qū),建議使用"ap 進(jìn)行粘貼。
P //粘貼剪切板里的內(nèi)容在光標(biāo)前,如果使用了前面的自定義緩沖區(qū),建議使用"aP 進(jìn)行粘貼。
九、替換(vi命令模式下使用)
: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 //編輯文件名為otherfilename的文件。
十一、修改文件格式
:set fileformat=unix //將文件修改為unix格式,如win下面的文本文件在linux下會(huì)出現(xiàn)^M。
總結(jié):vi(vim)教程雖然有比較多的命令,但是只要勤加練習(xí),相信你會(huì)很快的熟練掌握,同時(shí)也會(huì)給你的工作或?qū)W習(xí)帶來更高的效率。當(dāng)如果不知道自己處在什么模式時(shí)可以按2次Esc鍵即可回到命令模式,會(huì)有最后提醒一點(diǎn):注意大小寫!!!
1.關(guān)于退出
:wq! ----強(qiáng)制保存退出
:wq ---- 保存退出
:x ----- 作用和:wq 一樣
ZZ ---- 作用和:wq一樣,(注意Z是大寫的,并且不是在命令模式)
:q ---- 退出
:q! --- 強(qiáng)制退出
==============================================
2.關(guān)于移動(dòng)
h : 在當(dāng)前行向左移動(dòng)一個(gè)字符
j: 移動(dòng)到下一行
k: 移動(dòng)到上一行
l: 在當(dāng)前行向右移動(dòng)一個(gè)字符
Ctrl +f: 向前滾動(dòng)一頁(yè)
Ctrl +b: 向后滾動(dòng)一頁(yè)
:n 將光標(biāo)定位到第n行
:$ 將光標(biāo)定位到最后一行
0 將光標(biāo)定位到本行的行首
$ 將光標(biāo)定位到本行的行尾
G 將光標(biāo)定位到本文章的最后一行,與: $功能相同。
H 將光標(biāo)定位到屏幕的頂端
M 將光標(biāo)定位到屏幕的中間
L 將光標(biāo)定位到屏幕的底端
============================================
3.關(guān)于搜索
/: 后面跟要查找的東西,在文件中向前搜索
?: 后面跟要查找的東西,在文件中向后搜索
n: 向前重復(fù)搜索
N: 向后重復(fù)搜索
=============================================
4.關(guān)于復(fù)制
yy: 復(fù)制光標(biāo)當(dāng)前行
nyy: 復(fù)制光標(biāo)當(dāng)前行到當(dāng)前行以下的n-1行
:1,100 co 200 將1~100的內(nèi)容復(fù)制到第200行。
:100,102 co $ 將100~102行的內(nèi)容復(fù)制到最后一行。
==============================================
5.關(guān)于粘貼
p : 粘貼到當(dāng)前行的下一行
P(大) : 粘貼到當(dāng)前行的 上一行
==============================================
6.關(guān)于刪除.剪切
dd 刪除當(dāng)前行
ndd 與nyy相似
dw 刪除一個(gè)單詞
ndw 與ndd相似
x 刪除一個(gè)字符
nx 刪除n個(gè)字符
dG 刪除當(dāng)前光標(biāo)到文件末尾的所有內(nèi)容。
d0 刪除當(dāng)前光標(biāo)到本行行首的所有內(nèi)容
d$ 刪除當(dāng)前光標(biāo)到本行行尾的所有內(nèi)容
:1,100d 刪除1~100
:100d 刪除第100行
:1,100 mo $ 將1~100行的內(nèi)容移動(dòng)到最后一行。
=============================================
7.關(guān)于插入
i: 在當(dāng)前位置的字符前面進(jìn)入插入模式
I: 在當(dāng)前行的開頭進(jìn)行插入
a: 在當(dāng)前位置的字符后面進(jìn)入插入模式
A: 在當(dāng)前行的結(jié)尾進(jìn)行插入
o: 在當(dāng)前行下面打開一個(gè)新行進(jìn)行插入
O: 在當(dāng)前行上面打開一個(gè)新行進(jìn)行插入
=============================================
8.關(guān)于撤銷
u: 撤銷上一次的更改
=============================================
9.關(guān)于替換
regexp: 是要匹配的式樣
replacement: 是要替換的字符串
:s/regexp/replacement -------------------------替換當(dāng)前行出現(xiàn)的第一個(gè)式樣
:s/regexp/replacement/g -------------------------替換當(dāng)前行所有的匹配
:%s/regexp/replacement/g -----------------------替換文件中所有匹配式樣
=============================================
PS: 還有一個(gè)重要的命令就是"." 命令,這個(gè)命令是用來重復(fù)上一命令的
vi里如何:撤銷上次操作?,多次重復(fù)一組編輯操作?.......
a) 撤消上一個(gè)編輯操作。 ====> u
b) 重復(fù)上一個(gè)編輯操作。 =====> .
c) 還原被撤消的編輯操作。 ======> Ctrl + R
d) 多次重復(fù)一組編輯操作。 ====> ". " 命令可以重復(fù)最近一次的編輯動(dòng)作.
《鳥哥的Linux私房菜》vi 講義 圖片比較大,自動(dòng)縮放了,建議下載后打開查看