Vim常見的四種模式

Vim幫助文檔的快鍵鍵是:vimtutor

普通模式(Normal mode)

<code>vim打開進入的就是普通模式
vim從其他模式進入普通模式按ESC鍵,可以多次按ESC

保存退出:shift zz
代碼格式優化:shift g
光標的移動:
H:←
J:↓
K:↑
L:→
行首:0,^:移動到行首的非空白字符
行尾:$, g_:移動到行尾的非空白字符
頭部:gg
尾部:G
一行中的單詞移動:
w/W移動到下一個word/WORD開頭
e/E移動到下一個word/WORD結尾
b/B移動到上一個word/WORD開頭
word指的是以非空白符分割的單詞
WORD指的是以空白符分割的單詞
一行中的搜索的字符移動
f{char} 移動到char字符上,F是從行尾往前搜索
t{char} 移動到char字符前,T是從行尾往前搜索
分號(;)向後繼續搜索
逗號(,)向前繼續搜索
當前行向下移動N行,N+Enter
定位:行數 + G
H:移動屏幕的頂部

M:移動到屏幕的中間
L:移動到屏幕的底部
ctrl + u:向上翻頁
ctrl + f:向下翻頁
zz:讓光標的所在行成為屏幕的中間行

刪除操作
刪除光標前一個字符:X
刪除光標後的一個字符:x
刪除光標後的一單詞:dw
刪除光標前的字符串:d0
刪除光標後的字符串:d$ 或者 D
刪除當前行:dd
刪除當前光標行下的多行:行數 + dd
刪除當前光標後的字符至指定的字符:dt + 指定的字符

撤銷:u
反撤銷:ctrl + r
複製:
一行:yy
多行:行數 + yy
粘貼:
小p粘貼到光標的下一行
大P粘貼到光標的上一行
粘貼系統粘貼板中的內容:"+p

匹配:
*:向前匹配光標所在的單詞
#:向後匹配光標所在的單詞/<code>

插入模式(Insert mode)

<code>vim從普通模式切換到插入模式
a:從光標後開始插入
A:從光標所在行的行尾插入
i:從光標前開始插入
I:從光標所在行的行首插入
o:光標下面創建新的一行
O:光標上面創建新的一行
s:刪除光標蓋住的字符
4s:刪除4個字符,並進入插入模式
S:刪除光標所在的行
gi:從普通模式快速切換到上次編輯的位置,並進入插入模式
r:替換單個字符,並進入插入模式
R:一直替換字符
cw:刪除單詞,進入插入模式
C:刪除一行進入插入模式
ct+字符:刪除到指定的字符,並進入插入模式,和dt+字符用法相似


刪除操作:
刪除光標前一個字符:ctrl + h
刪除光標前一個單詞:ctrl + w
刪除光標所在當前行:ctrl + u/<code>

命令行模式(Command line mode)

<code>進入命令模式的方式
執行命令: :鍵
搜索命令:/和?鍵
過濾命令:!鍵
注:vim執行完命令行就會返回普通模式

保存退出:wq == x
保存不退出:w
退出:q
退出不保存:q
:e!: 放棄修改,重新加載
:e file 在同一個vim窗口加載file文件
:set paste 原格式粘貼

替換:
substitute 命令允許我們查找並且替換掉文本,並且支持正則式
:[range]s[ubstitute]/{pattern}/{string}/[flags]
range 表示範圍比如:10,20表示10-20行,%表示全部
pattern是要替換的模式,string是替換後文本
flags:
g(global)表示全局範圍內執行
c(confirm)表示確認,可以確認或者拒絕修改
n(number)報告匹配到的次數而不替換,可以用來查詢匹配次數
案例:
替換光標所在行:
:s/old/new/gc
替換多行:

:n1,n2 s/old/new/gc
n1,n2表示行數
替換當前文檔:
:% s/old/new/gc
統計單詞的個數:
:% s/word//n
匹配完成的單詞:
:% s/\\<word>/new/g

分屏:
水平分屏:sp
垂直分屏:vsp
退出:q
分屏之間切換:ctrl + ww
退出所有:qall
保存所有:wall
退出保存所有:wqall
分屏另一個文件:sp/vsp filename
同時給多個文件水平分屏:vim -o[filenumber] filenames
同時給多個文件垂直分屏:vim -O[filenumber] filenames/<word>/<code>

可視模式(Visual mode)

<code>調用的快捷鍵:v
複製:y
刪除:d
粘貼:
小p:粘貼到光標的後面
大P:粘貼到光標的前面
替換:
r:替換光標覆蓋的當前字符(一個)
R:替換光標覆蓋的當前字符串(多個)

行之間的選擇:使用大v進入/<code>


分享到:


相關文章: