Linux系統(tǒng)下歌溉,最常用的文本編輯器大概就是Vi 了,也是各版本Linux的標(biāo)配,因?yàn)椋?/p>
- 所有版本的 Linux 都帶有 Vi 編輯器榜晦;
- Vi占用資源少羽圃;
- Vi相比其他編輯器更加友好。
使用Vi進(jìn)入編輯模式
命令 | 描述 |
---|---|
vi Filename | 如果filename存在斩郎,則打開缩宜;否則會(huì)創(chuàng)建一個(gè)新文件再打開甥温。 |
vi -R Filename | 以只讀模式(只能查看不能編輯)打開現(xiàn)有文件姻蚓。 |
view Filename | 以只讀模式打開現(xiàn)有文件。 |
以Vi打開某個(gè)文件后捂龄,可能會(huì)出現(xiàn)以下幾種符號(hào):
豎線(|)代表光標(biāo)的位置倦沧;
波浪號(hào)(~)代表該行沒有任何內(nèi)容殉农。
如果沒有 ~超凳,也看不到任何內(nèi)容轮傍,那說明這一行肯定是有空白字符(空格、tab 縮進(jìn)杭跪、換行符等)或不可見字符涧尿。
Vi工作模式
- 普通模式
由Shell進(jìn)入vi編輯器時(shí)檬贰,首先進(jìn)入普通模式翁涤。在普通模式下,從鍵盤輸入任何字符都被當(dāng)作命令來解釋并鸵。
普通模式下可以執(zhí)行命令扔涧、保存文件扰柠、移動(dòng)光標(biāo)、粘貼復(fù)制等蝙泼。
- 普通模式
- 編輯模式
編輯模式主要用于文本的編輯汤踏。該模式下用戶輸入的任何字符都被作為文件的內(nèi)容保存起來溪胶,并在屏幕上顯示稳诚。
- 編輯模式
- 命令模式
命令模式下扳还,用戶可以對(duì)文件進(jìn)行一些高級(jí)處理氨距。盡管普通模式下的命令可以完成很多功能,但要執(zhí)行一些如字符串查找楞遏、替換寡喝、顯示行號(hào)等操作還是必須要進(jìn)入命令模式拘荡。
- 命令模式
4)工作模式切換:
在普通模式下輸入 i(插入)撬陵、c(修改)巨税、o(另起一行) 命令時(shí)進(jìn)入編輯模式;按 esc 鍵退回到普通模式驶兜。
在普通模式下輸入冒號(hào)(:)可以進(jìn)入命令模式抄淑。輸入完命令按回車肆资,命令執(zhí)行完后會(huì)自動(dòng)退回普通模式灶芝。
提示:如果不確定當(dāng)前處于哪種模式夜涕,按兩次 Esc 鍵將回到普通模式女器。
退出Vi編輯器(一般在命令模式下退出 vi 編輯器)
退出命令 | 說明 |
---|---|
q | 如果文件未被修改酸役,會(huì)直接退回到Shell;否則提示保存文件驾胆。 |
q! | 強(qiáng)行退出涣澡,不保存修改內(nèi)容。 |
wq | 保存并退出(w-保存文件俏拱,q-退出 vi) |
ZZ | 保存并退出暑塑,相當(dāng)于 wq,但是更加方便锅必。 |
w Filename2 | 將當(dāng)前文件另存為 filename2 |
注意:vi 編輯文件時(shí)事格,用戶的操作都是基于緩沖區(qū)中的副本進(jìn)行的搞隐。如果退出時(shí)沒有保存到磁盤驹愚,則緩沖區(qū)中的內(nèi)容就會(huì)丟失。
移動(dòng)光標(biāo)(必須在普通模式[按兩次 Esc 鍵]下)
命令 | 描述 |
---|---|
k | 向上移動(dòng)光標(biāo)(移動(dòng)一行) |
j | 向下移動(dòng)光標(biāo)(移動(dòng)一行) |
h | 向左移動(dòng)光標(biāo)(移動(dòng)一個(gè)字符) |
l | 向右移動(dòng)光標(biāo)(移動(dòng)一個(gè)字符) |
2j | 將光標(biāo)向下移動(dòng)兩行 |
兩點(diǎn)提醒:
vi 是區(qū)分大小寫的劣纲,輸入命令時(shí)注意大小寫逢捺。
命令前邊添加一個(gè)數(shù)字作為前綴表示移動(dòng)幾行。
命令 | 說明 |
---|---|
0 | 將光標(biāo)定位在一行的開頭癞季。 |
$ | 將光標(biāo)定位在一行的末尾劫瞳。 |
w | 定位到下一個(gè)單詞倘潜。 |
b | 定位到上一個(gè)單詞。 |
( | 定位到一句話的開頭志于,句子是以 ! . ? 三種符號(hào)來界定的涮因。 |
) | 定位到一句話的結(jié)尾。 |
{ | 移動(dòng)到段落開頭伺绽。&&&&&& |
} | 移動(dòng)到段落結(jié)束养泡。&&&&&&&&& |
[[ | 回到段落的開頭處。&&&&&&&&&& |
]] | 向前移到下一個(gè)段落的開頭處奈应。&&&&&&&&&& |
n | 移動(dòng)到第 n 列(當(dāng)前行)(需要在n后加分隔符) |
1G | 移動(dòng)到文件第一行澜掩。 |
G | 移動(dòng)到文件最后一行。 |
nG | 移動(dòng)到文件第 n 行杖挣。 |
:n | 移動(dòng)到文件第 n 行肩榕。 |
H | 移動(dòng)到屏幕頂部。 |
nH | 移動(dòng)到距離屏幕頂部第 n 行的位置程梦。 |
M | 移動(dòng)到屏幕中間点把。 |
L | 移動(dòng)到屏幕底部。 |
nL | 移動(dòng)到距離屏幕底部第 n 行的位置屿附。 |
:x | x是一個(gè)數(shù)字郎逃,表示移動(dòng)到行號(hào)為 x 的行。 |
控制滾動(dòng)命令(常用于搜索時(shí)翻頁)
命令 | 描述 |
---|---|
CTRL+d | 向前滾動(dòng)半屏 |
CTRL+f | 向前滾動(dòng)全屏 |
CTRL+u | 向后滾動(dòng)半屏 |
CTRL+b | 向后滾動(dòng)整屏 |
CTRL+e | 向上滾動(dòng)一行 |
CTRL+y | 向下滾動(dòng)一行 |
CTRL+I | 刷新屏幕 |
編輯文件(需在編輯模式下)
命令 | 描述 |
---|---|
i | 在當(dāng)前光標(biāo)位置之前插入文本 |
I | 在當(dāng)前行的開頭插入文本 |
a | 在當(dāng)前光標(biāo)位置之后插入文本 |
A | 在當(dāng)前行的末尾插入文本 |
o | 在當(dāng)前位置下面創(chuàng)建一行 |
O | 在當(dāng)前位置上面創(chuàng)建一行 |
刪除字符
命令 | 說明 |
---|---|
x | 刪除當(dāng)前光標(biāo)下的字符 |
X | 刪除光標(biāo)前面的字符 |
dw | 刪除從當(dāng)前光標(biāo)到單詞結(jié)尾的字符 |
d^ | 刪除從當(dāng)前光標(biāo)到行首的字符 |
d$ | 刪除從當(dāng)前光標(biāo)到行尾的字符 |
D | 刪除從當(dāng)前光標(biāo)到行尾的字符 |
dd | 刪除當(dāng)前光標(biāo)所在的行 |
在命令前面添加一個(gè)數(shù)字前綴挺份,表示重復(fù)操作的次數(shù)褒翰。
2x:表示連續(xù)兩次刪除光標(biāo)下的字符
2dd:表示連續(xù)兩次刪除光標(biāo)所在的行。
修改文本
命令 | 描述 |
---|---|
cc | 刪除當(dāng)前行匀泊,并進(jìn)入編輯模式优训。 |
cw | 刪除當(dāng)前字(單詞),并進(jìn)入編輯模式各聘。 |
r | 替換當(dāng)前光標(biāo)下的字符揣非。 |
R | 從當(dāng)前光標(biāo)開始替換字符,按 Esc 鍵退出躲因。 |
s | 用輸入的字符替換當(dāng)前字符早敬,并進(jìn)入編輯模式。 |
S | 用輸入的文本替換當(dāng)前行大脉,并進(jìn)入編輯模式搞监。 |
復(fù)制粘貼
命令 | 描述 |
---|---|
yy | 復(fù)制當(dāng)前行 |
nyy | 復(fù)制n行 |
yw | 復(fù)制一個(gè)字(單詞) |
nyw | 復(fù)制n行 |
p | 將復(fù)制的文本粘貼到光標(biāo)后面 |
P | 將復(fù)制的文本粘貼到光標(biāo)前面 |
文本查找(常用于日志)
在普通模式下進(jìn)行全文件搜索:輸入 /+要查找的字符串,回車即可
/ 命令是向下查找镰矿,如果希望向上查找琐驴,可以使用 ? 命令
查到內(nèi)容以后:
n 命令可以按相同的方向繼續(xù)查找
輸入 N 命令可以按相反的方向繼續(xù)查找
搜索的字符串中可以包含一些有特殊含義的字符,如果希望搜索這些字符本身,需要在前面加反斜杠()绝淡,部分特殊字符列表:
字符 | 說明 |
---|---|
^ | 匹配一行的開頭 |
. | 匹配一個(gè)字符 |
* | 匹配0個(gè)或多個(gè)字符 |
$ | 匹配一行的結(jié)尾 |
[ ] | 匹配一組字符 |