Vi(文本編輯器)

Vi,是一款由加州大學伯克利分校Bill Joy 研究開發的文本編輯器。

基本介紹

文本編輯器有很多,比如圖形模式的gedit、kwrite、OpenOffice,文本模式下的編輯器有vi、vim(vi的增強版本)。vi和vim是我們在Linux中最常用的編輯器。vi或vim是Linux最基本的文本編輯工具,vi或vim雖然沒有圖形界面編輯器那樣點滑鼠的簡單操作,但vi編輯器在系統管理、伺服器管理字元界面中,永遠不是圖形界面的編輯器能比的。
vi常用命令vi常用命令
(注意:vi是unix/linux作業系統中最經典的文本編輯器,只能是編輯字元,不能對字型、段落進行排版;它既可以新建檔案,也可以編輯檔案;他沒有選單,只有命令,且命令繁多。
雖然vi的操作方式與其他常用的文本編輯器(如gedit)很不相同 ,但是由於其運行於字元界面,並可用於所有unix/linux環境,目前仍被經常使用。)
vi 的三種命令模式
Command(命令)模式,用於輸入命令
Insert(插入)模式,用於插入文本
Visual(可視)模式,用於視化的的高亮並選定正文
游標移動
(註:不同的版本所給與vi的三種工作模式也不同。vi有三種工作模式:命令模式、文本編輯模式和最後行模式。不同工作模式下的操作方法有所不同。
1.命令模式:
命令模式是啟動vi後進入的工作模式,並可轉換為文本編輯模式和最後行模式。在命令模式下,從鍵盤上輸入的任何字元都被當作編輯命令來解釋,而不會在螢幕上顯示。如果輸入的字元是合法的vi命令,則vi就會完成相應的動作;否則vi會響鈴警告。
2.文本編輯模式:
文本編輯模式用於字元編輯。在命令模式下輸入i(插入命令)、a(附加命令)等命令後進入文本編輯模式,此時輸入的任何字元都被vi當作檔案內容顯示在螢幕上。按Esc鍵可從文本編輯模式返回到命令模式。
3.最後行模式:
在命令模式下,按“:”鍵進入最後行模式,此時vi會在螢幕的底部顯示“:”符號年作為最後行模式的提示符,等待用戶輸入相關命令。命令執行完畢後,vi自動回到命令模式。
為了實現跨平台操作兼容不同類型的鍵盤,在vi編輯器中無論是輸入命令還是輸入內容都是用字母鍵。例如按字母鍵“i”在文本編輯模式下表示輸入字母“i”,如果在命令模式下則表示將工作模式轉換為文本編輯模式。)
當我們按ESC進入Command模式後,我們可以用下面的一些鍵位來移動游標
j 向下移動一行
k 向上移動一行
h 向左移動一個字元
l 向右移動一個字元
ctrl+b 向上移動一屏
ctrl+f 向下移動一屏
向上箭頭 向上移動
向下箭頭 向下移動
向左箭頭 向左移動
向右箭頭 向右移動
我們編輯一個檔案時,對於 j、k、l和h鍵,還能在這些動作命令的前面加上數字,比如 3j,表示向下移動3行。
/# +Enter #為查找的內容
插入模式(文本的插入)
i 在游標之前插入
a 在游標之後插入
I 在游標所在行的行首插入
A 在游標所在行的行末插入
o 在游標所在的行的下面插入一行
O 在游標所在的行的上面插入一行
s 用輸入的文本替換游標所在字元
S 用輸入的文本替換游標所在行
文本內容的刪除操作;
x 一個字元
#x 刪除幾個字元,#表示數字,比如3x
dw 刪除一個單詞
#dw 刪除幾個單詞,#用數字表示,比如3dw表示刪除三個單詞
dd 刪除一行;
#dd 刪除多個行,#代表數字,比如3dd 表示刪除游標行及游標的下兩行
d$ 刪除游標到行尾的內容
J 清除游標所處的行與下一行之間的換行,行尾沒有空格的話會自動添加一個空格。
#J 表示合併#(數字)行。
退出保存;
在命令模式下按 shift+: 文本底端出現冒號
:w 保存;
:w filename 另外儲存為filename;
:wq! 保存退出;
:wq! filename 註:以filename為檔案名稱保存後退出;
:q! 不保存退出;
:x 應該是保存並退出 ,功能和:wq!相同
撤銷操作
u命令取消最近一次的操作,可以使用多次來恢復原有的操作
U取消所有操作
Ctrl+R可以恢復對使用u命令的操作
複製操作
yy命令複製當前整行的內容到vi緩衝區
yw複製當前游標所在位置到單詞尾字元的內容到vi快取區,相當於複製一個單詞
y$複製游標所在位置到行尾內容到快取區
y^複製游標所在位置到行首內容到快取區
#yy例如:5yy就是複製5行
#yw例如:2yw就是複製兩個單詞
如果要複製第m行到第n行之間的內容,可以在末行模式中輸入m,ny例如:3,5y複製第三行到第五行內容到快取區。
查找和替換
vi的查找和替換功能主要在末行模式完成:
至上而下的查找
/ 要查找的字元串,其中/代表從游標所在位置起開始查找,例如:/ work
至下而上的查找
?要查找的字元串 例如:? work
替換
:s/old/new用new替換行中首次出現的old
: s/old/new/g 用new替換行中所有出現的old
:#,# s/old/new/g用new替換從第#行到第#行中出現的old
:% s/old/new/g用new替換整篇中出現的old
如果替換的範圍較大時,在所有的命令尾加一個c命令,強制每個替換需要用戶進行確認,例如:s/old/new/c 或s/old/new/gc
恢復檔案
vi在編輯某一個檔案時,會生成一個臨時檔案,這個檔案以 . 開頭並以 .swp結尾。正常退出該檔案自動刪除,如果意外退出例如忽然斷電,該檔案不會刪除,我們在下次編輯時可以選擇一下命令處理:
O唯讀打開,不改變檔案內容
E繼續編輯檔案,不恢復.swp檔案保存的內容
R將恢復上次編輯以後未保存檔案內容
Q退出vi
D刪除.swp檔案
或者使用vi -r 檔案名稱來恢復未保存的內容

相關詞條

熱門詞條

聯絡我們