Linux系統之vi編輯器

vi編輯器是所有Unix及Linux系統下標準的編輯器,它的強大不遜色於任何最新的文本編輯器,這裏只是簡單地介紹一下它的用法和一小部分指令。由於對Unix及Linux系統的任何版本,vi編輯器是完全相同的,因此您可以在其他任何介紹vi的地方進一步瞭解它。Vi也是Linux中最基本的文本編輯器,學會它後,您將在Linux的世界裏暢行無阻。

1、vi的基本概念
  基本上vi可以分爲三種狀態,分別是命令模式(command mode)、插入模式(Insert mode)和末行模式(last line mode),各模式的功能區分如下:

1) 命令行模式(command mode)
  控制屏幕光標的移動,字符、字或行的刪除,移動複製某區段及進入Insert mode下,或者到 last line mode。

2) 插入模式(Insert mode)
  只有在Insert mode下,纔可以做文字輸入,按「ESC」鍵可回到命令行模式。

3) 末行模式(last line mode)
     設置vi編輯環境、保存文件、退出編輯器,以及多文件內容進行查找、替換等操作。

Linux系統之vi編輯器

一、命令行模式(command mode)功能鍵 
1、從命令模式進入到插入模式:
指令 說明
a 在光標後插入內容;
A 在當前行的末尾插入內容;
o 在當前行的下面插入內容;
O 在當前行的上面插入內容
i 在光標處插入內容;
I 在當前行的行首插入內容
2、命令模式下的跳轉命令:
指令 說明
上、下、左、右方向鍵 移動光標
pageup或ctrl+B 向上翻頁;
pagedown或ctrl+F 向下翻頁
home鍵 跳到當前行的行首(shift+^/數字0);
end鍵 跳到當前行的行尾(shift+$)
G(shift+g) 跳到文件的最後一行;#G:跳轉到文件的第#行
gg/1G 回到文件的第一行行首;10gg:跳到文件的第十行;22gg:跳到文件的第22行;
H 跳到當前屏幕的第一行
M 跳到當前屏幕的中間
L 跳到當前屏幕的最後一行
w 一個單詞一個單詞的向右跳
b 一個單詞一個單詞的向左跳
f 後面跟想跳轉的字母,如:f b,向右跳到最近的一個b字母處
3、命令模式下的複製和粘貼命令:
指令 說明
yy 複製當前行;比如:10yy:從當前行開始向下複製十行
yw 從光標開始複製一個單詞
y$ 複製光標處到行尾所有內容
y^ 複製光標處到行首所有內容
p (小寫) 將緩衝區中的內容粘貼到光標位置處之後
P (大寫) 粘貼到光標位置處之前
4、命令模式下的刪除\撤消\替換命令:
指令 說明
dd 刪除當前行;10dd:從當前行開始向下刪除10行
dw 從光標開始刪除一個單詞
d$ 刪除光標處到行尾所有內容
d^ 刪除光標處到行首所有內容
x/del 刪除光標處的一個字符
u 撤消上一步操作
U 用於取消對當前行所做的所有編輯
ZZ 保存當前的文件內容並退出vi編輯器
ctrl+r 反撤消
r b 把光標所在處的字符替換成b;r n:把光標處的字符替換成n
R 從光標處連續向右替換直到按esc鍵停止 (光標處開始替換模式)

5、命令模式下文件內容查找:

指令 說明
/word 從上而下在文件中查找字符串“word”
?word 從下而上在文件中查找字符串“word”
n 定位下一個匹配的被查找的字符串
N 定位上一個匹配的被查找的字符串

二、插入模式
就是寫入文本內容。

三、末行模式(在“:”後面輸入內容)
1、保存和退出:

指令 說明
w 保存
w aa.log 把當前文件另存爲aa.log 放到當前目錄
w /tmp/ab.log 把當前文件另存爲ab.log放到/tmp目錄
q 退出
wq 保存後退出 和x一樣
q! 不保存退出
1090,1096 w 1090.log 把當前文件的1090行到1096行,另存到當前目錄1090.log中
1085,1088s /^/#/g 在1085行到1088行的行首插入#
%s /^/#/g 所有行的行首插入#
1085,1088s /^#//g 在1085行到1088行的行首去掉#
set nu 顯示行號 (臨時顯示)
set nonu 不顯示行號

2、打開新文件或讀入其他文件內容

指令 說明
e /home/a.txt 在當前文件下,打開新的文件進行編輯;
r aa.log 把當前目錄下的aa.log文件讀取到當前文件中,起到文件合併的效果

3、文件內容替換

指令 說明
s /old/new 將當前行中查找到的第一個字符串“old”替換爲“new”
s /old/new/g 將當前行中查找到的所有字符串“old”替換爲“new”
#,# s/old/new/g 在行號"#,#"範圍內替換所有的字符串“old”爲“new”
% s/old/new/g 在整個文件範圍內替換所有的字符串“old”爲“new”
%s /^c/C/g 把當前文檔中所有以c開頭的內容替換成C
s /old/new/c 在替換命令末尾加入c命令,將對每個替換動作提示用戶進行確認
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章