1. 程式人生 > >Linux作業系統之vi編輯器(二)

Linux作業系統之vi編輯器(二)

1.vi進入及設定
進入vi編輯器 vi file1(file1可以是已經存在的檔案,也可以是新建的檔案)
從編輯模式進入命令模式 Esc
設定編輯器自動對齊 :set ai
取消編輯器自動對齊 :set noai
同時編輯多個檔案 :%vi file1 file2 file3 …
恢復中斷前的檔案內容 :%vi r file1
2.退出命令模式下操作
i 在當前字元前新增文字
I 在行首插入文字
a 在當前字元後新增文字
A 在行末新增文字
o 在當前行後面插入一空行
O 在當前行前面插入一空行
Ctrl + u 向檔案首翻半頁
Ctrl + d 向檔案末翻半頁
Ctrl + b 向檔案首翻一頁
Ctrl + f 向檔案末翻一頁
Ctrl + y 向上翻一行
Ctrl + e 向下翻一行
ZZ 存檔退出
X 刪除游標前的字元
x 刪除當前游標所在的字元
D 刪除從當前游標到游標所在行尾的全部字元
dd 刪除游標行整行內容(並將它放到與yy相同的記憶體快取區)
ndd 刪除當前游標行及該行之後的n-1行
yy 將當前行復制到快取區
nyy 將當前行到當前行之後的n-1行復制到快取區
cc 修改整行
ncc 修改當前行及當前行之後的n-1行
p 將快取區的內容複製到當前行之後(小寫p)
P 將快取區的內容複製到當前行之前(大寫P)
gg 跳轉到第一行
G或shift + g 跳轉到最後一行
nG 跳轉到檔案的第n行
0或^ 移動到游標所在行的行首
h 左移
l 右移
k 上移
j 下移
$ 移至行尾
H 移至視窗第一列
M 移至視窗中間列
L 移至視窗最後一列
+ 移至下一行的第一個字元
- 移至上一行的第一個字元
( 移至句首
) 移至句末
{ 移至段首
} 移至段末
n+ 移至當前行之後的第n行
n- 移至當前行之前的第n行
Ctrl + g 顯示當前的檔名、游標所在行的行號以及顯示比例
e 由游標位置移至該字串的最後一個字元
b 由游標所在位置移至該字串的第一個字元(若游標本身是第一個字元,則移到上一個字 符串的第一個字元)
w 由游標位置移至下一個字串的第一個字元
D 刪除當前行游標之後的所有字元
rn 將游標所在的字元用n替換
s 刪除游標所在之字元,並進入編輯模式
S 刪除游標所在行所有字元,並進入編輯模式
nj 游標下移n行
u 恢復到最後一個指令之前的結果
U 恢復遊標所在行的所有改變
/字串 從當前游標位置到檔案尾部查詢字串
?字串 從當前游標位置到檔案首部查詢字串
n 對上一個查詢命令,執行繼續往下查詢
N 對上一個查詢命令,執行繼續往上查詢
J 將游標所在行的下一行移至該行的末尾

3.命令模式下操作
:wq 在命令模式下執行存檔退出
:w 在命令模式下執行存檔操作
:w! 在命令模式下執行強制存檔操作
:q 在命令模式下執行推遲vi操作
:q! 在命令模式下執行強制推遲vi操作
:e 檔名 在命令模式下執行開啟並編輯指定檔案
:n 在命令模式下,如果同時開啟多個檔案,則繼續編輯下一個檔案
:f 在命令模式下,用於顯示當前的檔名、游標所在行的行號以及顯示比例
:set number 在命令模式下,用於在最左端顯示行號(:set nu)
:set nonumber 在命令模式下,用於在最左端不顯示行號(:set nonu)
:行號 在命令模式下,游標跳轉到指定行的行首
:$ 在命令模式下,游標跳轉到最後一行的行首
:a,bs/x/y 在命令模式下,將a到b行的x換成y
:0或:1 在命令模式下跳轉到第一行
:10,20w test 將第10行到第20行的內容寫入到test檔案
:10,20w >>test 將第10行到第20行的內容寫入到test檔案之後
:r file1 將file1檔案讀入編輯緩衝區的最後
:10,20d 刪除第10行到第20行的內容
:10d 刪除第10行的內容
:%d 刪除整個編輯緩衝區
:10,20co30 將第10到第20行的內容複製到第30行之後
:10,20mo30 將第10行到第20行的內容搬移到第30行之後