首頁 > 軟體

程式設計師的編輯器Vim

2020-06-16 17:54:02

Vim 在編輯器中是神一樣的存在,熟練掌握Vim將極大提高編輯文字的效率。本文將介紹Vim最基本的操作和技巧。

操作篇

模式

Vim中一共有4種模式:

  1. 普通模式:啟動Vim後,為普通模式,所有鍵都為功能鍵。
  2. 插入模式:按下鍵i,進入插入模式,此時可以輸入文字,返回普通模式,按Esc鍵。
  3. 可視模式:按下鍵v,進入可視模式,可以移動游標對文字進行選擇
  4. 命令列模式:輸入":"進入命令列模式,執行Vim的命令

最基本的移動

將游標上下左右移動,分別對應kjhl四個鍵。可以在前面加數位代表移動多個單位。如10j下移10行。

在檔案中的移動

G-----移動到最後一行

gg ------ 移動到第一行

10G ------ 跳到第10行

75% ----- 跳轉到全文75%的地方

移動到指定字元

使用f,t,F,T可以再當前行快速移動。

fx ----- 移動到游標右邊的第一個’x'字元上

Fx ----- 反方向查詢,也就是移動到游標左邊的指定字元上。

tx ----- 移動到游標右邊的第一個’x'字元之前

Tx ----- 它移動到游標右邊的指定字元'x'之後。

; ----- 重複前一次輸入的f, t, F, T命令

, ----- 反方向重複前一次輸入的f, t, F,T命令。

";"和","這兩個命令前也可以使用數位來表示倍數。也可以在命令前面使用數位,表示倍數。例如: 3fx ----- 移動到游標右邊的第3個’x'字元上。

移動到行首行尾

0 ------ 移動到行首

$ ------ 移動到行尾

^ -------移動到第一個非空白字元行首

按單詞移動

w ------ 移動游標的下一個單詞的詞首

b ------ 移動游標的上一個單詞的詞首

e ------ 移動游標的下一個單詞的詞尾

ge ------ 移動游標的上一個單詞的詞尾

按視窗移動

H ------ 讓游標跳到當前視窗的頂部 M ------ 讓游標跳到當前視窗的中部 L ------ 讓游標跳到當前視窗的底部

相對於游標滾屏

zt ------ 把游標所在行移動視窗的頂端 zz ------ 把游標所在行移動視窗的中間 zb ------ 把游標所在行移動視窗的底部

各種插入

i ------ 在游標處插入 a ------ 在游標後插入 o ------ 在當前行後插入一個新行 O ------ 在當前行前插入一個新行 cw ------ 替換從游標所在位置後到一個單詞結尾的字元(c鍵和w鍵)

複製和貼上

yy ------ 拷貝當前行 p ------ 貼上 也可以在yy和p的前面加上數位: 3yy ------ 拷貝當前行起的3行 3p ------ 貼上文字3次

查詢

在normal模式下進行查詢。 / ------ 在Normal模式下輸入”/“,然後輸入你想查詢的字串,迴車,就跳轉到第一個匹配的地方了。 ? ------ 與/相反的方向查詢 n ------ 重複上一次的查詢命令 N ------ 按相反方向重複上一次的查詢命令

在輸入”/“或”?“後,用上、下游標鍵(或CTRL-P/CTRL-N)翻看歷史記錄,然後再次執行這個查詢。 你還可以使用”q/“和”q?“命令,在vim視窗最下面開啟一個新的視窗,這個視窗會列出你的查詢歷史記錄,你可以使用任何vim編輯命令對此視窗的內容進行編輯,然後再按回車,就會對游標所在的行的內容進行查詢。如下圖所示:

* ------ 查詢游標所在位置的單詞,所有匹配的單詞將高亮顯示,並跳到下一個匹配項上 # ------ 查詢游標所在位置的單詞,所有匹配的單詞將高亮顯示,並跳到上一個匹配項上

% ------ 括號匹配移動,即移動到與當前游標所在括號匹配的括號的位置

替換字串

%s/源字串/目的字串/g ------ 將當前文件中所有的源字串替換為目的字串

刪除、復原和重做

dd ------ 刪除當前行 dt ------ 刪除當前行直到遇到它後面跟的符號 u ------ 復原上一次操作 ctrl + r ------ redo重做 如我用dd刪除了當前行,如果後悔了不想刪除可以使用u命令復原,如果還是想刪除可以使用ctrl + r繼續刪除。

開啟、儲存和退出

以下操作除非特別說明都在命令模式下操作,即每個命令前都要加入":",如:q退出。 q ------ 退出當前檔案 q! ------ 強制退出當前檔案,不儲存 w ------ 寫入檔案,存檔 wq ------ 儲存退出當前檔案 x ------ 儲存退出當前檔案 ZZ ------ 儲存退出當前檔案(普通模式下執行) e filepath ------ 開啟一個檔案 saveas filepath ------ 另存為 bn ------ 當同時開啟很多檔案後,可以使用bn切換下一個檔案。 bp ------ 當同時開啟很多檔案後,可以使用bp切換上一個檔案。

重複命令

. ------ 重複上一次離開插入模式之前的全部命令 n< command > ------ 之前提到過的重複command命令n次

游標移動和命令配合使用

0y0y  直到本行最後一個字元) ye ------ 複製從當前位置到下一個單詞的詞尾

技巧篇

找出當前文件中相同的行

:sort
/^(.+)$n1

按時間撤消

Vim 7 包括了一個讓使用者跳轉到任何編輯點之前或之後的新特性。如使用

:earlier 10m 

可以返回到 10 分鐘以前的編輯狀態。 又如使用

:later 5s 

可以跳轉到 5 秒以後的編輯點。另外,可以使用 :undolist 命令檢視緩衝區存在的復原分支列表。而通過 :undo < number> 命令則能夠移到復原的某個分支。

刪除當前文件的所有空行

:g/^$/d

在每行的行首或行尾插入指定字串

行首插入:

:%s/^/your_word/

行尾插入:

:%s/$/your_word/

例如在每行前面插入行號如下:

:%s/^/=line(".")/

讀取shell命令

如插入日期:

:r!date

:r 是:read的縮寫,!是表明要執行一個shell命令,意思是我要把shell命令的輸出讀到vim裡來。

統計某個單詞出現的次數

:%s/word//gn

統計的結果會在底部的狀態列顯示。

Vim貼上縮排問題

在Vim中貼上Python程式碼後,縮排就全亂了。進入paste模式以後,可以在插入模式下貼上內容,不會有任何變形。

:set paste

最後使用:set nopaste恢復普通模式。


好了,這篇文章已經說了不少關於Vim的基本操作和技巧,如果能掌握這些就可以比較流暢的使用Vim了。之後會有更多關於Vim操作的文章。

更多Vim相關教學見以下內容

把VIM打造成一個簡單實用的IDE http://www.linuxidc.com/Linux/2011-06/37032.htm

Vim學習指南 http://www.linuxidc.com/Linux/2013-08/89096.htm

快速學會 Vi編輯器 http://www.linuxidc.com/Linux/2013-08/88586.htm

強大的Vim 編輯器 http://www.linuxidc.com/Linux/2013-07/87544.htm

CentOS 6.2上搭建Vim開發環境 http://www.linuxidc.com/Linux/2013-07/87363.htm

CentOS 5.4 安裝高亮Vim編輯工具 http://www.linuxidc.com/Linux/2013-06/86508.htm

Vim技巧分享:C語言設定 http://www.linuxidc.com/Linux/2012-12/77124.htm

Ubuntu中設定Vim的行號 http://www.linuxidc.com/Linux/2012-12/75485.htm

Vim編輯器使用基礎教學 http://www.linuxidc.com/Linux/2013-05/84031.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-08/122479.htm


IT145.com E-mail:sddin#qq.com