1. 程式人生 > 其它 >linux下利用vim工具編輯文字檔案

linux下利用vim工具編輯文字檔案

技術標籤:Linuxlinux檔案編輯

vim三種工作模式

注意:使用者建立檔案時,必須在使用者所在目錄的下面。/etc/passwd檔案有使用者所在目錄。cat+cd命令可以解決相應問題。(針對多個使用者)

模式可以進行的檔案操作
普通模式對檔案內容進行復制、貼上、替換、刪除。可上下移動游標。不能向檔案輸入。
輸入模式可以向檔案執行寫操作(輸入)。
命令(行)模式可儲存,查詢,替換檔案等。

普通模式下的操作

1.開啟檔案的方式

1 vim filename:開啟或新建一個檔案,並將游標置於第一行的首部。
2 vim -r filename:恢復上次Vim開啟時崩潰的檔案(recover)。
3 vim -R filename:把指定的檔案以只讀方式放入Vim編輯器中(read)。
4 vim + filename:開啟檔案,並將游標置於最後一行的首部。
5 vim +n filename:開啟檔案,並將游標置於第n行的首部。

三種模式的切換(注意:命令列下的操作一定要把游標移動到對應視窗,否則無效)

輸 入 模 式 ( 編 輯 模 式 ) → 命令列模式:按Esc,之後再選擇檔案儲存方式 輸入模式(編輯模式 ) \rightarrow\text{命令列模式:按Esc,之後再選擇檔案儲存方式} ()命令列模式:Esc,之後再選擇檔案儲存方式

輸入模式下的操作

按Esc 推出編輯模式,輸入命令如:i,I,o,O等控制檔案編輯。當螢幕下方提示有INSERT提示,表示可以開始編輯了。游標是參考位置,以下命令控制輸入位置。以下這幾個命令也是檔案進入輸入模式最直接的命令(Esc作用相反)。

1 i:在當前游標所在位置插入文字,當前游標所在位置的文字向右移動(前插)。aa
2 I:在游標所在行的行首插入文字,行首是該行的第一個非空白字元,相當於游標移動到行首執行i命令(行首插入)。
3 o:在游標所在行的上面插入新的一行。游標停在空行的行首,等待輸入文字(前插一行)。
4 O:在I游標所在行的下面插入新的一行。游標停在空行的行首,等待輸入文字(後插一行)。
5 a:在當前游標所在位置之後插入文字。
6 A:在游標所在行的行尾插入文字,相當於游標移動到行尾執行a命令。

注意:首次開啟一個或者建立一個檔案時,首先也是輸入命令,如i,o等。看到INSERT再輸入文字。

命令模式下的檔案儲存方式(通常在檔案編輯之後輸入的命令)

1 :w:儲存修改。若為:w!則表示強制儲存。前者出差,可以進入用i,o等命令進入編輯模式。再退出。:
2 :q:退出Vim編輯器。若為:q!則表示不儲存強制退出Vim編輯器。後者可強制回答命令列。
3 :wq:儲存並退出,若為:wq!則表示強制儲存並退出。!!!!多用
4 ZZ:如果沒有改動則退出,如果修改過則儲存後退出。
5 :w filename:將檔案內容儲存到指定檔案。
6 :r filename:將指定檔案的內容插入到遊標所在行後面。
7 :n1,n2 w filename:將n1到n2的內容儲存到指定檔案。
8 :! command:暫時離開Vim編輯器執行command的顯示結果。

移動游標的操作

1 h或←:遊標向左移動一個字。
 2 j或↓:遊標向下移動一個字。
 3 k或↑:遊標向上移動一個字。
 4 l或→:遊標向右移動一個字。
 5 [Ctrl]f:螢幕向下移動一頁,相當於PageDown按鍵。
 6 [Ctrl]b:螢幕向上移動一頁,相當於PageUp按鍵。
 7 [Ctrl]d:螢幕向下移動半頁。
 8 [Ctrl]u:螢幕向上移動半頁。
 9 +:遊標移動到非空白字元的下一列。
10 -:遊標移動到非空白字元的上一列。
11 n[Space]:n為數字,向右移動n個字。
12 0或[Home]:移動到這一行的最前面的字。
13 $或[End]:移動到這一行的最後面的字。
14 H:遊標移動到最上方一行的第一個字。
15 M:遊標移動到中間一行的第一個字。
16 L:遊標移動到最下方一行的第一個字。
17 G:移動到最後一行。
18 nG:n為數字,移動到第n行。
19 gg:移動到第一行。
20 n[Enter]:n為數字,遊標向下移動n行。

查詢和替換操作(常再一個檔案內進行)

1 /word:向下尋找word字串。
2 ?word:向上尋找word字串。
3 n:n是英文按鍵,表示按上一個搜尋方向搜尋下一個。
4 N:N是英文按鍵。與n剛好相反,表示按上一個搜尋方向的反方向搜尋下一個。
5 :n1,n2s/word1/word2/g:n1和n2為數字。在第n1行到第n2行之間查詢word1字串,並將該字串取代為word2。
6 :1,$s/word1/word2/g:從第一行到最後一行查詢word1字串,並將該字串取代為word2。
7 :1,$s/word1/word2/gc:從第一行到最後一行查詢word1字串,並將該字串取代為word2。且在替換前進行詢問。

複製黏貼用到的命令(常再一個檔案內進行,且為命令模式)

1 x或X:x表示刪除當前游標所在的一個字,相當於[del]按鍵,X表示向前刪除一個字,相當於[backspace]按鍵。
 2 nx:n為數字,連續向後刪除n個字。
 3 dd:刪除游標所在的一行。
 4 ndd:n為數字,刪除游標所在的向下n行。
 5 d1G:刪除游標所在的行到第一行。
 6 dG:刪除游標所在的行到最後一行。
 7 d$:刪除游標所在的位置到該行的最後一個字。
 8 d0:刪除游標所在的位置到該行的第一個字。
 9 yy:複製游標所在的那一行。//yy 複製 和pp刪除成對使用。
10 nyy:n為數字。複製游標所在的向下n行。
11 y1G:複製游標所在的行到第一行。
12 yG:複製游標所在的行到最後一行。
13 y$:複製游標所在的位置到該行的最後一個字。
14 y0:複製游標所在的位置到該行的第一個字。
15 p或P:p表示從游標的下一行開始貼上,P表示從游標所在行開始貼上。
16 J:將游標所在行與下一行合成一行。
17 u:復原前一個動作。
18 [Ctrl]r:重做上一個動作。
19 .:小數點,表示重複前一個動作。

設定

1 :set nu:顯示行號。
2 :set nonu:取消顯示行號。