VIM快捷鍵大全

前言

Vim是一個超級牛的編輯器,可以說是專爲程序員設計的編輯器,強大的有些不可思議 。不過其學習曲線稍顯陡峭,前兩天在網上找到一個小圖表,比較全,如果對錶中所列的命令學習熟悉以後,處理日常的文本就已經足夠,所以貼出來,大家參考參考。

Vim的牛B之處不在於其功能之繁多,更不在於其學習曲線之陡峭,而在於這些命令大都可以進行組合 , 比如,9yy命令表示複製9行內容,9表示要複製的行數,同樣100dd表示刪除100行,當數字和命令合作的時候,就比單純的命令更強大,同樣,c命令 表示擦除,w表示word即單詞,那麼cw就表示擦除一個單詞,c5w就表示刪除5個單詞等等。將這些簡單命令合成在一起,就可以發揮出難以想象的強大功 能,而且可以使你的編輯工作充滿樂趣。

宏命令(Macros)

高級一些的編輯器,都會包含宏功能,vim當然不能缺少了,在vim中使用宏是非常方便的:

 

:qx 開始記錄宏,並將結果存入寄存器x
q 退出記錄模式
@x 播放記錄在x寄存器中的宏命令

稍微解釋一下,當在normal模式下輸入:qx後,你對文本的所有編輯動作將會被記錄下來,再次輸入q即退出了記錄模式,然後輸入@x對剛纔記錄 下來的命令進行重複,此命令後可跟數字,表示要重複多少次,比如@x20,可以重複20次。這個在文本的批處理中是非常有用的。

同時編輯多個文件

在vim衆多的插件中,有一個叫minibuffer的插件,就是下面所說的標籤頁功能了,可以支持同時編輯多個文件。

標籤命令

 

:tabe fn 在一個新的標籤頁中編輯文件fn
gt 切換到下一個標籤頁
gT 切換到上一個標籤頁
:tabr 切換到第一個標籤頁
:tabl 切換到最後一個標籤頁
:tabm [N] 把當前tab移動到第N個tab之後

對,正如你所想象的那樣,跟eclipse, ue等的標籤頁是一個意思!

窗口命令

 

ctrl+w s 水平分割窗口
ctrl+w w 切換窗口
ctrl+w q 退出當前窗口(由於同時有多個文件,此命令不會影響其他窗口)
ctrl+w v 垂直分割窗口

其他

vim在保存之前不會對文件做實際的修改,只是加載到緩衝區中,對文件的編輯其實是對緩衝區的編輯,直到:w時纔會存入物理文件。

 

:e file 把file加載到新的緩衝區中
:bn 跳轉到下一個緩衝區
:bd 刪除緩衝區(關閉文件)
:sp fn 分割窗口,並將fn加載到新的窗口中

退出編輯器

 

:w 將緩衝區寫入文件,即保存修改
:wq 保存修改並退出
:x 保存修改並退出
:q 退出,如果對緩衝區進行過修改,則會提示
:q! 強制退出,放棄修改

查找替換

 

/pattern 向後搜索字符串pattern
?pattern 向前搜索字符串pattern
n 下一個匹配(如果是/搜索,則是向下的下一個,?搜索則是向上的下一個)
N 上一個匹配(同上)
:%s/old/new/g 搜索整個文件,將所有的old替換爲new
:%s/old/new/gc 搜索整個文件,將所有的old替換爲new,每次都要你確認是否替換

複製粘貼

dd 刪除光標所在行
dw 刪除一個字(word)
x 刪除當前字符
X 刪除前一個字符
D 刪除到行末
yy 複製一行,此命令前可跟數字,標識複製多行,如6yy,表示從當前行開始複製6行
yw 複製一個字
y$ 複製到行末
p 粘貼粘貼板的內容到當前行的下面
P 粘貼粘貼板的內容到當前行的上面
]p 有縮進的粘貼,vim會自動調節代碼的縮進
"a 將內容放入/存入a寄存器,可以支持多粘貼板

附:比如常用的一個寄存器就是系統寄存器,名稱爲+,所以從系統粘貼板粘貼到vim中的命令爲"+p,注意此處的+不表示操作符,二十一個寄存器。

移動光標

在vim中移動光標跟其他的編輯器中有很大的區別,不過一旦學會了,就會飛速 的在文本中移動了。

 

h,j,k,l 上,下,左,右
ctrl-f 上翻一頁
ctrl-b 下翻一頁
% 跳到與當前括號匹配的括號處,如當前在{,則跳轉到與之匹配的}處
w 跳到下一個字首,按標點或單詞分割
W 跳到下一個字首,長跳,如end-of-line被認爲是一個字
e 跳到下一個字尾
E 跳到下一個字尾,長跳
b 跳到上一個字
B 跳到上一個字,長跳
0 跳至行首,不管有無縮進,就是跳到第0個字符
^ 跳至行首的第一個字符
$ 跳至行尾
gg 跳至文件的第一行
gd 跳至當前光標所在的變量的聲明處
[N]G 跳到第N行,如0G,就等價於gg,100G就是第100行
fx 在當前行中找x字符,找到了就跳轉至
; 重複上一個f命令,而不用重複的輸入fx
tx 與fx類似,但是隻是跳轉到x的前一個字符處
Fx 跟fx的方向相反
),( 跳轉到上/下一個語句
* 查找光標所在處的單詞,向下查找
# 查找光標所在處的單詞,向上查找
`. 跳轉至上次編輯位置

在屏幕上移動

 

H 移動光標到當前屏幕上最上邊的一行
M 移動光標到當前屏幕上中間的一行
L 移動光標到當前屏幕上最下邊的一行

書籤

 

ma 把當前位置存成標籤a
`a 跳轉到標籤a處

 編輯

 

r 替換一個字符
J 將下一行和當前行連接爲一行
cc 刪除當前行並進入編輯模式
cw 刪除當前字,並進入編輯模式
c$ 擦除從當前位置至行末的內容,並進入編輯模式
s 刪除當前字符並進入編輯模式
S 刪除光標所在行並進入編輯模式
xp 交換當前字符和下一個字符
u 撤銷
ctrl+r 重做
. 重複上一個編輯命令
~ 切換大小寫,當前字符
g~iw 切換當前字的大小寫
gUiw 將當前字變成大寫
guiw 將當前字變成小寫
>> 將當前行右移一個單位
<< 將當前行左移一個單位(一個tab符)
== 自動縮進當前行

 

插入模式

 

i 從當前光標處進入插入模式
I 進入插入模式,並置光標於行首
a 追加模式,置光標於當前光標之後
A 追加模式,置光標於行末
o 在當前行之下新加一行,並進入插入模式
O 在當前行之上新加一行,並進入插入模式
Esc 退出插入模式

可視模式

標記文本

v 進入可視模式,單字符模式
V 進入可視模式,行模式
ctrl+v 進入可視模式,列模式 ,類似於UE的列模式
o 跳轉光標到選中塊的另一個端點
U 將選中塊中的內容轉成大寫
O 跳轉光標到塊的另一個端點
aw 選中一個字
ab 選中括號中的所有內容,包括括號本身
aB 選中{}括號中的所有內容
ib 選中括號中的內容,不含括號
iB 選中{}中的內容,不含{}

對標記進行動作

 

> 塊右移
< 塊左移
y 複製塊
d 刪除塊
~ 切換塊中內容的大小寫

 

好了,這張簡表就說到這裏,當然它涵蓋的範圍有限,但是正如片頭說的那樣,vim的強大之處在於這些命令可以組合起來使用,那樣才能體現出其強大的 編輯功能。我在網上找到的這個文檔也順便貼出來,大家可以同時參考。如果有機會,我儘量找些例子來說明這些命令在實際中的用法,那樣纔可以更好的使用它, 提高我們的工作效率。

發佈了39 篇原創文章 · 獲贊 0 · 訪問量 3491
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章