linux下vi與vim編輯器的簡單區別及VI詳細使用方法

vi與vim一樣都是編輯器,不同的是vim更高級一些,可以理解是vi的高級 版本。vi就像Windows中的計事本,而vim則可以算的上是 office中的word。vi主要用來編輯一些文件,vim是程序員的好工具。好的。。。。下面在介紹一下vi的使用。。。。。。
    1. 使用vi進入一般模式
[root@Linux ~]# vi test.txt
直接輸入“vi 文件名”即可進入vi。如圖10-2所示,左下角會顯示這個文件的當前狀態。如果是新建文件,會顯示 [New File],如果是已存在的文件,則會顯示當前文件名、行數與字符數,例如:“"/etc/man.config" 145L, 4614C”。

 圖10-2  利用vi打開一個文件
2. 按下i進入編輯模式,開始編輯文字
在一般模式中,只要按下I、o、a等字符,就可以進入編輯模式了。在編輯模式中,可以發現在左下角會出現 --INSERT-- ,意味着可以輸入任意字符,如圖10-3所示。這個時候,鍵盤上除了 [Esc] 這個按鍵之外,其他按鍵都可以視作爲一般的輸入按鈕,可以進行任何編輯(在vi裏,[Tab]鍵所得到的結果與空格符所得到的不一樣,特別強調一下)。
 圖10-3  進入vi的編輯模式
3. 按下 [Esc] 鍵回到一般模式
按下 [Esc] 鍵,馬上就會發現畫面左下角的 --INSERT-- 不見了。
4. 在一般模式中按下 :wq存儲後離開vi
我們要保存文件了,存盤並離開的命令很簡單,輸入“:wq”即可保存文件並離開(注意,按下 : ,該光標就會移到最下面的一行)。這時在提示符後面輸入“ls -l”即可看到剛建立的test.txt文件,最後結果如圖10-4所示。
 圖10-4  利用vi存儲文件這樣,文件test.txt已經建立好 了,需要注意的是,如果文件權限不對,例如爲 -r--r--r-- 時,那麼可能會無法寫入。可以使用“強制寫入”的方式嗎?可以。使用“:wq!”多加一個感嘆號即可。不過,需要特別注意,這是在“你的權限可以改變”的 情況下可行的。
二。。。。  命令行內容說明
如前所述,命令行或命令模式,就是在最下面一行中沒有顯示--INSERT--或者 --REPLACE--字樣。通常,命令行中的命令參見表10-1(注意,當按下“:”時,光標會自動移到屏幕的最下面一行)。
表 10-1                              命令行的命令
一般模式:移動光標的方法h或向左方向鍵(←)
光標向左移動一個字符
j或向下方向鍵(↓)
光 標向下移動一個字符
k或向上方向鍵(↑)
光標向上移動一個字符
                                         續表       一般模式:移動光標的方法l或向右方向鍵(→)
光標向右移動一個字符
如果想要進行多次移動的話,例如 向下移動30行,可以使用“30j”或“30↓”的組合鍵,即加上想要進行的次數(數字)後,操作即可
[Ctrl] + [f]
屏幕“向 下”移動一頁,相當於 [Page Down] 按鍵(常用)
[Ctrl] + [b]
屏幕“向上”移動一頁,相當於 [Page Up] 按鍵(常用)
[Ctrl] + [d]
屏幕“向下”移動半頁
[Ctrl] + [u]
屏幕“向上”移動半頁
一般模式:移動光標的方法+
光標移動到非空格符的下一行
-
光標移動到非空格符的上一行
n <space>
n 表示“數字”,例如20。按下數字後再按空格鍵,光標會向右移動這一行的n 個 字符。例如20 <space> 則光標會向後面移動20個字符距離
0
這是數字“0”:移動到這一行的最前面字符處(常用)
$
移 動到這一行的最後面字符處(常用)
H
光標移動到這個屏幕的最上方那一行
M
光標移動到這個屏幕的中央那一行
L
光 標移動到這個屏幕的最下方那一行
G
移動到這個文件的最後一行(常用)
n G
n 爲 數字。移動到這個文件的第n 行。例如20G則會移動到這個文件的第20行(可配合 :set nu)
gg
移 動到這個文件的第一行,相當於1G(常用)
n <Enter>
n 爲 數字。光標向下移動n 行(常用)
一般模式:搜索與替換/word
從光標位置開始,向下尋找一個名爲word的字符串。例如要在文件內搜索 vbird這個字符串,就輸入 /vbird即可(常用)
?word
從光標位置開始,向上尋找一個名爲word的字符串
n 
n 是 英文按鍵。表示“重複前一個搜索的動作”。舉例來說,如果剛剛執行 /vbird去向下搜索vbird字符串,則按下n後, 會向下繼續搜索下一個名稱爲vbird的字符串。如果是執行 ?vbird的話,那麼按下n ,則會向上繼續搜索名稱爲 vbird的字符串
N
這個N是英文按鍵。與n 剛好相反,爲“反向”進行前一個搜索操作。例如 /vbird後,按下N則表示“向上”搜索vbird
                                         
                                         續表       一般模式:搜索與替換:n1、n2s/word1/word2/g
n 1與n 2 爲數字。在第n 1與n 2行之間尋找word1這個字符串,並將該字符串替換爲 word2。舉例來說,在100到200行之間搜索vbird並替換爲VBIRD則:“:100、200s/vbird/VBIRD /g”(常用)
:1、$s/word1 /word2/g
從第一行到最後一行尋找word1字符串,並將該字符串替換爲word2(常用)
:1、$s/word1/word2 /gc
從第一行到最後一行尋找word1字符串,並將該字符串替換爲word2。且在替換前顯示提示符給用戶確認(conform)是否需要替換 (常用)
一般模式:刪除、複製與粘貼x, X
在一行字中,x爲向後刪除一個字符(相當於 [Del] 按鍵),X爲向前刪除一個字符(相當於 [backspace] 即退格鍵)(常用)
n x
n 爲 數字,連續向後刪除n 個字符。舉例來說,要連續刪除10個字符,則輸入“10x”
dd
刪除光標所在的 那一整行(常用)
n dd
n 爲數字。從光標位置開始,刪除向下n 列, 例如20dd則是刪除20列(常用)
d1G
刪除光標所在位置到第一行的所有數據
dG
刪除光標所在位置到最後一行的所有數 據
d$
刪除光標所在位置到該行的最後一個字符
d0
d的後面是數字0,刪除光標所在處,到該行的最前面一個字符
yy
復 制光標所在的那一行(常用)
n yy
n 爲數字。複製光標所在的向下n 行, 例如20yy則是複製20行(常用)
y1G
複製光標所在行到第一行的所有數據
yG
複製光標所在行到最後一行的所有數據
y0
復 制光標所在的那個字符到該行行首的所有數據
y$
複製光標所在的那個字符到該行行尾的所有數據
一般模式:刪除、複製與粘貼p, P
p爲將已複製的數據粘貼到光標的下一行,P則爲貼在光標上一行。舉例來 說,當前光標在第20行,且已經複製了10行數據。則按下p後,那10行數據會貼在原來的20行之後,即由21行開始貼。但如果是按下P,那麼原來的第 20行會被變成30行(常用)
J
將光標所在行與下一列的數據結合成同一行
c
重複刪除多個數據,例如向下刪除10行, [10cj]
u
復原前一個操作(常用)
[Ctrl]+r
重做上一個操作(常用)
u與 [Ctrl]+r是很常用的命令。一個是復原,另一個則是重做一次。利用這兩個功能按鍵,編輯起來就得心應手。
                                         續表       一般模式:刪除、複製與粘貼.
這就是小數點。意思是重複前一個動作。如果想重複刪除、重複粘貼,按下小數點 “.”就可以(常用)
進入編輯模式i、I
插入:在當前光標所在處插入輸入文字,已存在的文字會向後退;其中,i爲“從當前光標所在 處插入”,I爲“在當前所在行的第一個非空格符處開始插入”(常用)
a、A
a爲“從當前光標所在的下一個字符處開始插入”,A爲“從光標 所在行的最後一個字符處開始插入”(常用)
o、O
這是英文字母o的大小寫。o爲“在當前光標所在的下一行處插入新的一行”;O爲“在當前 光標所在處的上一行插入新的一行”(常用)
r、R
替換:r會替換光標所在的那一個字符;R會一直替換光標所在的文字,直到按下ESC鍵爲 止(常用)
使用上面這些按鍵時,在vi畫面的左下角處會出現“--INSERT--”或“--REPLACE--”的字樣。通過名稱就知道是什麼 操作。特別注意,上面也提過了,想在文件中輸入字符時,一定要在左下角處看到INSERT/REPLACE才能輸入。
Esc
退出編輯模 式,回到一般模式中(常用)
命令行命令模式:w
將編輯的數據寫入硬盤文件中(常用)
:w!
若文件屬性爲“只讀”時,強制 寫入該文件。不過,到底能不能寫入,與文件權限有關
:q
離開vi(常用)
:q!
若曾修改過文件,又不想存儲,使用 ! 爲強制離開不存儲文件
注意一下,那個感嘆號(!)在vi當中,常常具有“強制”的意思。
:wq
存儲後離開,若爲 :wq! 則爲強制存儲後離開(常用)
:e!
將文件還原到最原始的狀態
ZZ
若文件沒有更改,則不存儲離開,若文件已經更改,則存儲 後離開
:w [filename]
將編輯的數據存儲成另一個文件(類似另存新文件)
:r [filename]
在編輯的 數據中,讀入另一個文件的數據。即將“filename”這個文件內容加到光標所在行的後面
:n1、n2 w [filename]
n 1 到n 2的內容存儲成filename文件
:! command
暫時離開vi到命令行模式下執行 command的顯示結果。例如“:! ls /home”,即可在vi中查看 /home中以ls輸出的文件信息
:set nu
顯示行 號,設置之後,會在每一行的前綴顯示該行的行號
:set nonu
與set nu相反,爲取消行號
別注意,在vi中,“數字”是 很有意義的。數字通常表示重複做幾次的意思。也有可能表示要去哪裏的意思。舉例來說,要刪除50行,則是用“50dd”。數字加在動作之前。要向下移動 20行,使用“20j”或者“20↓”即可。
三。。。  文件的恢復與暫存盤
vi具有“可恢復”的功能。vi憑藉什麼進行恢復呢?很簡 單,臨時文件。舉例來說,當我們編輯一個文件時,假設名稱爲 /tmp/ passwd,那麼在這個 /tmp中就會有一個臨時文件,文件名爲“/tmp/.passwd.swp”,這是一個隱藏文件,我們所進行的一些修改,都會暫時存在該文件中。如果在 文件修改過程中,系統死機,那麼下次再重新vi /tmp/passwd時,系統就會告訴你,是否需要恢復(recovery)成修改過程中的模樣?如果按下 (R),就可以將數據恢復到修改過程的樣子,而不是源文件。這是個很有用的功能。
也就是說,如果有一天,在 /tmp中執行ls -al時,發現有兩個文件,文件名分別爲passwd與 .passwd.swp,那麼,(1) 可能有人在編輯這個文件;(2) 之前你在編輯這個文件時,因爲某些未知因素導致vi程序中斷,則該臨時文件就會存在。如果是狀態 (2),則此時可以將該 .passwd.swp文件刪除,或者直接vi /tmp/passwd,在vi詢問是否恢復時,選擇恢復,然後存儲更新 /tmp/passwd,之後再將這個 /tmp/.passwd.swp文件刪除即可。如果不刪除的話,那麼每次編輯這個文件時,都會告訴你該文件有問題。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章