在使用 Vim 的過程中,經常需要粘貼、替換、跳轉等操作,由于我腦子笨,時常記不住,總是依賴 google 幫忙才能完成。所以這次索性就把常用的命令集中梳理一下,通過寫文章的方式來強迫自己記住:)
編輯
插入
i:在當前位置插入
a:在當前位置后插入
I:在當前行首插入
A:在當前行尾插入
刪除
X:刪除前一個字符
s:刪除光標所在的字符,光標還在當前行(等同于 x)
S:刪除光標所在的行,光標還在當前行(不同于dd)
dd:刪除一行,光標到下一行
[N]d+Enter:刪除當前行開始的 N 行
dw,dW:從當前光標處開始刪除一個單詞(大寫包含標點)
d$:刪除當前字符之后的所有字符(本行)
dk:刪除當前行和上一行
dj:刪除當前行和下一行
kdgg:刪除當前行之前所有行(不包括當前行)
jdG(jd shift + g):刪除當前行之后所有行(不包括當前行)
:1,10d:刪除1-10行
:10d:刪除第10行
:11,$d:刪除11行及以后所有的行
移動和粘貼
ddp:交換光標所在行和其下緊鄰的一行
xp:交換當前字符和其下一個字符
~:將當前字符變換為大寫
[N]>>:一行或N行向右移動一個 tab
[N]<<:一行或N行向左移動一個 tab
[N]yy:復制一行或者N行
yw:復制一個單詞
p:粘貼
shift+p:在當前行前粘貼
:1, 10 m 20 將第1-10行移動到第20行之后
:1,10 co 20 將1-10行插入到第20行之后
:1,$ co $ 將整個文件復制一份并添加到文件尾部
光標跳轉
W,E,w,e:以單詞為單位,向前跳動,大寫包含標點(w 光標落在單詞首字母,e 光標落在單詞為字母)
B,b:以單詞為單位,向后跳動,大寫包含標點
O(大寫字母O):在當前行上方開啟新的一行
o(小寫字母o):在當前行下方開啟新的一行
^:移動到本行第一個非空白字符上
$:光標移動到一行的結尾
[N]$:移動到下面 N 行的行尾
0(數字0):光標移動到本行第一個字符上
gg:光標移動到文檔的開頭
G:光標移動到文檔的結尾
Ctrl + e:向下滾動一行
Ctrl + y:向上滾動一行
Ctrl + d:向下滾動半屏
Ctrl + u:向上滾動半屏
Ctrl + f:向下滾動一屏
Ctrl + b:向上滾動一屏
搜索和替換:
查找很長的詞,如果一個詞很長,鍵入麻煩,可以將光標移動到該詞上,按*或#鍵即可以該單詞進行搜索,相當于/搜索;而#命令相當于?搜索。
/pattern:查找 pattern,按 n 健查找下一個,按 N 鍵查找前一個
?pattern:查找 pattern,反向查找,按 n 健查找下一個,按 N 鍵查找前一個
:set ignorecase 忽略大小寫的查找
:set hlsearch 高亮搜索結果,所有結果都高亮顯示,而不是只顯示一個匹配。
:set incsearch 逐步搜索模式,對當前鍵入的字符進行搜索而不必等待鍵入完成
n:光標到達搜索結果的下一個目標
N:光標到達搜索結果的上一個目標
ra 將當前字符替換為a,當期字符即光標所在字符
s/old/new/ 用old替換new,替換當前行的第一個匹配
s/old/new/g 用old替換new,替換當前行的所有匹配
%s/old/new/g 用old替換new,替換整個文件的所有匹配
文件和窗口:
:split file 橫向打開一個新窗口,光標停在頂層的窗口上
:vsplit file 縱向打開一個新窗口,光標停在頂層的窗口上
Ctrl+w 移動到下一個窗口
:close 關閉當前窗口
:open file 在新窗口中打開文件
:bn 切換到下一個文件
:bp 切換到上一個文件
其他
.:重復最后一個命令
:!command 執行 shell 命令
:suspend或Ctrl - Z 掛起vim,回到shell,按fg可以返回vim
:scriptnames 查看vim腳本文件的位置,比如.vimrc文件,語法文件及plugin等
個人覺得能夠被經常用到的也就這么多,如果以后發現還有其他命令,就再補充吧。。。