1. 程式人生 > >vi / vim 常用操作

vi / vim 常用操作

先了解一下 vi 的三種模式:

a. 命令模式(command mode)— 直接按鍵執行命令
  在該模式中,可以直接按鍵執行命令,比如連續按 [ g ] 鍵兩次快速把游標定位到第一行第一列,vi啟動後通常處在命令模式,
b. 輸入模式(Insert mode)— 編輯文字
  在命令模式下,按 [ i ] 鍵可以進入輸入模式。
c. 末行模式(last line mode)— 在底行輸入命令執行
  按 [ ESC ] 鍵後再按 [ : ] 鍵就進入末行模式。

1. 縮排排版當前原始檔:

在命令列模式按鍵:[ gg ] [ = ] [ G ]

[ gg ] 將游標移到檔案第一行第一列,[ = ] 實現自動排版,[ G ] 表示將游標移到檔案末尾。
注:[ gg ] [ G ] 相當於將檔案內容全選。

2. 全文查詢指定字串

(1)命令模式查詢

          把游標定位到字串,按 [ gd ] 找其他的匹配。

          按 [ n ] 查詢下一個匹配,按 [ N ] 查詢上一個匹配。 

(2)末行模式查詢

          比如要查詢單詞 hello,轉到命令模式下輸入:

          :/hello

          回車即查詢hello,按 [ n ] 查詢下一個匹配,按 [ N ] 查詢上一個匹配。

3. 同時開啟多個檔案,多個檔案互相切換
(1)在同一視窗中開啟多個檔案

         $ vi file1 file2 file3
         命令模式下,:n 切換到下一個檔案 ,:N  切換到上一個檔案。

(2)在分割視窗中開啟多個檔案
       開啟多個檔案的兩種方法:

      $ vi -o file1 file2 file3....同時開啟多個檔案。

      如果已經開啟一個了一個檔案,可在命令模式下【:sp 另一個檔名】,開啟另一個檔案。

     多個檔案之間切換:
     使用 Ctrl + 兩次按 w, 或者,Ctrl + w 然後按上下鍵在上下視窗間切換。

4.  複製操作
  yy  複製當前整行的內容到緩衝區。
  yw 複製當前游標所在位置到單詞尾字元的內容到快取區。
  y$ 複製游標所在位置到行尾內容到快取區。
  y^  複製游標所在位置到行首內容到快取區。
  #yy  複製從當前行開始的後面 # 行(#是數字),包括當前行。例如:5yy就是複製後面5行(包括當前行)。
 #yw  複製從當前單詞開始的後面 # 個單詞(#是數字)。例如:2yw就是複製後面兩個單詞。

5. 貼上操作

   p  把快取區裡的內容複製到當前位置。

6. 刪除操作

dw 刪除游標之後的單詞剩餘部分。
d$  刪除游標之後的該行剩餘部分。
dd  刪除當前行。

7. 撤銷和恢復
u    撤銷上一步的操作。
Ctrl+r  恢復上一步被撤銷的操作。

8. 摺疊與展開

zc 摺疊,只摺疊最外層的展開。
zC 摺疊,對所在範圍內所有巢狀的展開點進行摺疊,包括巢狀的展開。
zo 展開,只展開最外層的摺疊。
zO 展開,對所在範圍內所有巢狀的摺疊點展開,包括巢狀的摺疊。

 9. 切換視窗 使用 Ctrl + 兩次按 w, 或者,Ctrl + w 然後按上下鍵在上下視窗間切換。