2021-05-12 14:32:11
程式設計師的編輯器Vim
Vim 在編輯器中是神一樣的存在,熟練掌握Vim將極大提高編輯文字的效率。本文將介紹Vim最基本的操作和技巧。
操作篇
模式
Vim中一共有4種模式:
- 普通模式:啟動Vim後,為普通模式,所有鍵都為功能鍵。
- 插入模式:按下鍵i,進入插入模式,此時可以輸入文字,返回普通模式,按Esc鍵。
- 可視模式:按下鍵v,進入可視模式,可以移動游標對文字進行選擇
- 命令列模式:輸入":"進入命令列模式,執行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次
游標移動和命令配合使用
0y−−−−−−復制本行(0移動到行首,y從這裡開始復制, 直到本行最後一個字元) 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
相關文章