linux下vi與vim編輯器的區別及使用方法

來源:互聯網
上載者:User

from : http://blog.csdn.net/suofiya2008/article/details/5630356

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
移動到這個檔案的最後一行(常用)
nG
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
n1與 n2為數字。在第 n1與 n2行之間尋找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] 即退格鍵)(常用)
nx
n為數字,連續向後刪除 n個字元。舉例來說,要連續刪除10個字元,則輸入“10x”
dd
刪除游標所在的那一整行(常用)
ndd
n為數字。從游標位置開始,刪除向下 n列,例如20dd則是刪除20列(常用)
d1G
刪除游標所在位置到第一行的所有資料
dG
刪除游標所在位置到最後一行的所有資料
d$
刪除游標所在位置到該行的最後一個字元
d0
d的後面是數字0,刪除游標所在處,到該行的最前面一個字元
yy
複製游標所在的那一行(常用)
nyy
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]
n1到 n2的內容儲存成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檔案刪除即可。如果不刪除的話,那麼每次編輯這個檔案時,都會告訴你該檔案有問題。

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
移動到這個檔案的最後一行(常用)
nG
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
n1與 n2為數字。在第 n1與 n2行之間尋找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] 即退格鍵)(常用)
nx
n為數字,連續向後刪除 n個字元。舉例來說,要連續刪除10個字元,則輸入“10x”
dd
刪除游標所在的那一整行(常用)
ndd
n為數字。從游標位置開始,刪除向下 n列,例如20dd則是刪除20列(常用)
d1G
刪除游標所在位置到第一行的所有資料
dG
刪除游標所在位置到最後一行的所有資料
d$
刪除游標所在位置到該行的最後一個字元
d0
d的後面是數字0,刪除游標所在處,到該行的最前面一個字元
yy
複製游標所在的那一行(常用)
nyy
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]
n1到 n2的內容儲存成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檔案刪除即可。如果不刪除的話,那麼每次編輯這個檔案時,都會告訴你該檔案有問題。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.