歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix基礎知識 >> vi編輯命令

vi編輯命令

日期:2017/3/3 15:26:00   编辑:Unix基礎知識
重復執行命令

數字N+命令 重復執行命令N次,如刪除15行,就在命令狀態下輸入15dd

. 重復執行上一條命令

vi命令使用的一些選項及含義

-c sub-command 在對指定的文件編輯前,先執行指定的命令 sub-command . 

-r filename 恢復指定的文件filename .

-R 將指定的文件以只讀的方式放入編輯器中,這樣不會保存對文件的任何修改。

-y number 將編輯窗口的大小設為number行。

光標移動

命令模式下,在同一行上移動的子命令:

h 將光標左移一格

l 將光標右移一格

j 將光標下移一格

k 將光標上移一格

w 將光標移到下一個小字的前面

W 將光標移到下一個大字的前面

b 將光標移到前一個小字的前面

B 將光標移到前一個大字的前面

e 將光標移到下一個小字的後面

E 將光標移到前一個大字的後面

fc 把光標移到同一行的下一個c字符處

Fc 把光標移到同一行的前一個c字符處

tc 把光標移到同一行的下一個字符c的前一格

Tc 把光標移到同一行的前一個字符c的後一格

number|把光標移到遞number列上

命令模式下在行間移動的子命令: 

+或Enter 把光標移至下一行第一個非空白字符

- 把光標移至上一行第一個非空白字符 

0 把光標移到當前行的第一個字符處 

$ 把光標移到當前行的最後一個字符處

H 把光標移到屏幕最頂端一行

L 把光標移到屏幕最底端一行

M 把光標移到屏幕中間

:number 光標移動到第number行

:$ 光標移動到最後以行

屏幕翻滾類命令

Ctrl+u 向文件首翻半屏

Ctrl+d 向文件尾翻半屏

Ctrl+f 向文件尾翻一屏

Ctrl+b 向文件首翻一屏

nz 將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部

插入文本
I 在光標前

I 在當前行首

a 光標後

A 在當前行尾

o 在當前行之下新開一行

O 在當前行之上新開一行

r 替換當前字符

R 替換當前字符及其後的字符,直至按ESC鍵

s 從當前光標位置處開始,以輸入的文本替代指定數目的字符

S 刪除指定數目的行,並以所輸入文本代替之

ncw或nCW 修改n個單詞

nCC修改指定數目的行

刪除

x 刪除光標所指的一個字母

X 刪除光標左邊的一個字母

dd 刪除光標所在的一行文字,同時本行文字會放到緩存中

d0 刪至行首

d$ 刪至行尾

D 刪除本行光標右邊的所有文字,包括光標位置的字母

d$ 刪除本行光標右邊的所有文字,包括光標位置的字母

dw 刪除光標右邊的一個單詞

ndw 刪除n個單詞

d1G 刪除光標所在行以上的所有行

dG 刪除光標所在行及光標以下所有行

復制

yy 復制本行文字到緩存中

number yy 復制number行到緩存中

粘貼

p 把緩存中的行粘貼到光標所在的下一行,

P 把緩存中的行粘貼到光標所在的上一行

替換

:s/pattern1/pattern2/g 把光標當前行的pattern1替換為pattern2

:%s/pattern1/pattern2/g 把所有行的pattern1替換為pattern2

:g/parttern1/s//parttern2 把所有行的pattern1替換為pattern2

:num1,num2 s/pattern1/pattern2/g 把num1到num2的partten1替換為partten2

被替換的文字用^表示行首,$表示行尾,如:%s/^/111/g就表示在每一行的行首插入111

文件

:r filename 把文件filename的內容粘貼在光標以下行

:w 保存當前編輯的文件名

:w filename 當filename不存在時,把修改後的文件存為文件filename ,當文件filename 

存在時,報錯。

!w filename 如果文件filename存在時,把修改後的文件保存為文件filename

:q 退出vi ,若文件被修改,系統不會讓用戶使用q命令退出

q! 不保存退出

x 保存退出

wq 保存退出

在多個文件之間切換 
:n開始編輯vi激活的文件列表中的下一個文件 

:n filenames 指定將被編輯的新的文件列表 

在當前文件和另外一個文件間切換:

:e filename 使用filename激活vi(在vi中裝入另一個文件filename)

e! 重新裝入當前文件,若當前文件有改動,則丟棄以前的改動

:e+filename 使用filename激活vi ,並從文件尾部開始編輯

:e+number filename 使用filename激活vi ,並在第number行開始編輯

:e# 開始編輯另外一個文件

查找

/pattern 向後尋找指定的pattern?,若遇到文件尾,則從頭再開始。

?pattern 向前尋找指定的pattern?,若遇到文件頭,則從尾再開始。

n 在上次指定的方向上,再次執行上次定義的查找。

N 在上次指定的方向的相反方向上,再次執行上次定義的查找。

/pattern/+number 將光標停在包含pattern的行後面第number行上。

/pattern/-number 將光標停在包含pattern的行前面第number行上。

% 移到匹配的"()"或"{}"上。

選項設置

all 列出所有選項設置情況

term 設置終端類型

ignorance 在搜索中忽略大小寫
list 顯示制表位(Ctrl+I)和行尾標志($) number 顯示行號 report 顯示由面向行的命令修改過的數目 terse 顯示簡短的警告信息 warn 在轉到別的文件時若沒保存當前文件則顯示NO write信息 nomagic 允許在搜索模式中,使用前面不帶“\”的特殊字符 nowrapscan 禁止vi在搜索到達文件兩端時,又從另一端開始 mesg 允許vi顯示其他用戶用write寫到自己終端上的信息
Copyright © Linux教程網 All Rights Reserved