模式切換
Vim一共有4個模式:
- 正常模式 (Normal-mode) :正常模式一般用於瀏覽文件,也包括一些復制、粘貼、刪除等操作
- 插入模式 (Insert-mode):在正常模式中按下
i, I, a, A
等鍵 - 命令模式 (Command-mode):在正常模式中,按下
:(冒號)
鍵,會進入命令模式 - 可視模式 (Visual-mode):在正常模式按下
v, V, \<Ctrl>+v,
可以進入可視模式。
顯示行號
set nu
顯示行號
set nonu
不顯示行號
刪除行文本相關
首先前提是在編輯模式下按esc進入命令模式下操作
x
刪除當前光標中的一個字符
dw
當前光標單詞的剩余部分(delete word),就是刪除光標之后第一個空格之前的內容
db
光標和前一個單詞剩余部分,刪除光標之前第一個空格之間的內容
ndw
刪除當前光標后的n個單詞
d$
/ D
刪除當前光標之后的這一行的所有內容
dd
直接刪除當前行
ndd
直接刪除當前行開始的n
c
功能與d功能類似,但是c功能會操作完進入INSERT模式,比如:cw
,c$
,cc
。
d)
刪除到下一行的開始,被刪除行會消失,不會變成空行
d + 回車
直接刪除2行(當前行+下一行)
gg dG
刪除所有文本
復制和粘貼
-
將光標移動到要復制的位置,按
V
進入可視化模式。 -
將光標移動到要復制的結束的位置,按下
y
,復制。(此時vim自動選中要復制的內容並復制,然后退出可視化)。 -
將光標移動到要粘貼的地方,按
p
粘貼。
撤銷和重做
u
撤銷上一步的操作(undo)
ctrl+r
重做撤銷的步驟(redo)
查找和替換
全文的搜索
直接在normal模式下按/
進入查找模式,然后輸入要查找的字符串
按下回車
, vim會跳轉到匹配的第一個,然后按下
n
查找下一個,按下N
查找上一個。
3n
向后查找三個符合的字符串。
?
向上搜索,隨后的n命令向上搜索,N向下搜索,其他和/一樣
- 取消搜索后的高亮顯示方法:
:/,?
,set nohlsearch
,:nohl
大小寫敏感查找
在查找模式中加入\c
表示大小寫不敏感查找,\C
表示大小寫敏感查找
例如,查找大小寫敏感的void:
/void \C
查找當前光標的單詞
在normal模式下按*
既可以查找光標所在單詞,(單詞的要求是每次出現的前后為空白字符或標點符號)。
例如,查找foo bar
的foo
,只要將光標放在foo
單詞任一字符上,既可以被匹配到。
替換
在命令模式下
s
用來查找和替換字符串,語法如下::{作用范圍}s/{目標}/{新替換}/{替換標志}
例如:%s/foo/bar/g
會在全局范圍(%
)查找foo
並替換為bar
,所有出現的都會被替換(g
)。
-
范圍:主要包括當前行、全文、選區。
-
當前行:
s/foo/bar/g
-
全文:
%s/foo/bar/g
-
選取:在visual模式下(按
v
建進入visual模式)選擇區域后輸入:
,vim既可以自動補全為:'<,'>
。然后在后面繼續輸入s/foo/bar/即可
如:
'<,'>s/foo/bar/g
-
固定行:如將45-62行的void改為VOID,
45,62s/void/VOID/g
-
當前行到接下來的n行:如將當前光標到接下來的15行的VOID改為void,
.,+5s/VOID/void/g
-
-
替換標志:上文中的/g表示全局替換(globe),還有一些其他的替換標志。
空替換標志
表示只從光標處開始出現的第一次的替換:%s/foo/bar
i
表示大小寫不敏感,%s/foo/bar/i
I
表示大小寫敏感,%s/foo/bar/I
c
表示需要確認,例如全局查找foo
替換為bar
時,需要確認,%s/foo/bar/gc
,回車后Vim會將光標移動到每一次"foo"
出現的位置,並提示replace with bar (y/n/a/q/l/^E/^Y)?
按下y
表示替換,n
表示不替換,a
表示替換所有,q
表示退出查找模式,l
表示替換當前位置並退出。
光標移動快捷鍵
hjkl
左下上右鍵
注:當 Bill Joy 創建 Vi 文本編輯器時,他使用的機器機器是 ADM-3A 終端機,這機器就是把 HJKL 鍵作為方向鍵。自然而然,Bill Joy 也就用了相同的按鍵了。
直接按:
fa
向后移動到字符a處
Fa
向前移動到字符a處
2w
向后移動兩個word
2b
向前移動兩個word
gg
移動到文本開頭處
G
移動到文本結束處
:123
移動到第123行
快捷鍵圖
待補充...
推薦更多Vim相關內容:
- Linux文本編輯器Vim基礎教程 https://www.linuxidc.com/Linux/2017-09/146930.htm
- Linux下使用vim命令編輯與修改文本內容 https://www.linuxidc.com/Linux/2018-03/151584.htm
- vim基本操作筆記 https://www.linuxidc.com/Linux/2018-04/151693.htm
- Vim高級操作快速入門 https://www.linuxidc.com/Linux/2018-09/154039.htm
- 如何在Vim編輯器中密碼保護文件 https://www.linuxidc.com/Linux/2018-10/154910.htm
- Linux基礎教程之Vim編輯器用法 https://www.linuxidc.com/Linux/2018-09/154400.htm
- Linux 系統中如何進入退出 Vim 編輯器 https://www.linuxidc.com/Linux/2018-04/151813.htm
- Ubuntu 16.04 Vim YouCompleteMe自動補全的安裝配置與使用 https://www.linuxidc.com/Linux/2017-02/141088.htm
- 如何在Vim編輯器中密碼保護文件 https://www.linuxidc.com/Linux/2018-10/154910.htm
- Vim實現分屏操作 https://www.linuxidc.com/Linux/2019-03/157689.htm
- Vim編輯器翻頁控制命令詳解 https://www.linuxidc.com/Linux/2019-01/156600.htm
- Linux下更改Vim默認注釋顏色 https://www.linuxidc.com/Linux/2019-01/156603.htm