Vim的一些快捷鍵記錄:
一单默、移動(dòng)光標(biāo)
按鍵 | 功能 | 說(shuō)明 |
---|---|---|
h,j,k,l | 上,下忘瓦,左搁廓,右 | |
ctrl-e | 移動(dòng)頁(yè)面 | |
ctrl-f | 上翻一頁(yè) | |
ctrl-b | 下翻一頁(yè) | |
ctrl-u | 上翻半頁(yè) | |
ctrl-d | 下翻半頁(yè) | |
w | 跳到下一個(gè)字首,按標(biāo)點(diǎn)或單詞分割 | |
W | 跳到下一個(gè)字首耕皮,長(zhǎng)跳境蜕,如end-of-line被認(rèn)為是一個(gè)字 | |
e | 跳到下一個(gè)字尾 | |
E | 跳到下一個(gè)字尾,長(zhǎng)跳 | |
b | 跳到上一個(gè)字 | |
B | 跳到上一個(gè)字凌停,長(zhǎng)跳 | |
0 | 跳至行首粱年,不管有無(wú)縮進(jìn),就是跳到第0個(gè)字符 | |
^ | 跳至行首的第一個(gè)字符 | |
$ | 跳至行尾 | 常用 |
gg | 跳至文首 | 常用 |
G | 調(diào)至文尾 | 常用 |
5gg/5G | 調(diào)至第5行 | |
gd | 跳至當(dāng)前光標(biāo)所在的變量的聲明處 | |
fx | 在當(dāng)前行中找x字符罚拟,找到了就跳轉(zhuǎn)至 | |
; | 重復(fù)上一個(gè)f命令台诗,而不用重復(fù)的輸入fx | |
* | 查找光標(biāo)所在處的單詞,向下查找 | |
# | 查找光標(biāo)所在處的單詞赐俗,向上查找 |
二拉队、刪除復(fù)制
按鍵 | 功能 | 說(shuō)明 |
---|---|---|
dd | 刪除光標(biāo)所在行 | |
dw | 刪除當(dāng)前字符至行末 | |
D | 刪除當(dāng)前字符至行末 | |
x | 刪除當(dāng)前字符 | |
X | 刪除前一個(gè)字符 | |
yy | 復(fù)制一行 | |
Y | 復(fù)制一行 | |
yw | 復(fù)制到行末 | |
按esc后,然后ggvG或者ggVG | 全選(高亮顯示) | |
按esc后阻逮,然后ggyG | 全部復(fù)制 | |
按esc后粱快,然后dG | 全部刪除 |
三、插入模式
按鍵 | 功能 | 說(shuō)明 |
---|---|---|
i | 從當(dāng)前光標(biāo)處進(jìn)入插入模式 | |
I | 進(jìn)入插入模式叔扼,并置光標(biāo)于行首 | |
a | 追加模式事哭,置光標(biāo)于當(dāng)前光標(biāo)之后 | |
A | 追加模式,置光標(biāo)于行末 | |
o | 在當(dāng)前行之下新加一行币励,并進(jìn)入插入模式 | |
O | 在當(dāng)前行之上新加一行,并進(jìn)入插入模式 | |
Esc | 退出插入模式 |
四珊拼、編輯
按鍵 | 功能 | 說(shuō)明 |
---|---|---|
J | 將下一行和當(dāng)前行連接為一行 | |
cc | 刪除當(dāng)前行并進(jìn)入編輯模式 | |
cw | 刪除當(dāng)前字食呻,并進(jìn)入編輯模式 | |
c$ | 擦除從當(dāng)前位置至行末的內(nèi)容,并進(jìn)入編輯模式 | |
s | 刪除當(dāng)前字符并進(jìn)入編輯模式 | |
S | 刪除光標(biāo)所在行并進(jìn)入編輯模式 | |
xp | 交換當(dāng)前字符和下一個(gè)字符 | |
u | 撤銷 | |
ctrl+r | 重做 | |
~ | 切換大小寫,當(dāng)前字符 | |
>> | 將當(dāng)前行右移一個(gè)單位 | |
<< | 將當(dāng)前行左移一個(gè)單位(一個(gè)tab符) | |
== | 自動(dòng)縮進(jìn)當(dāng)前行 |
五仅胞、查找替換
按鍵 | 功能 | 說(shuō)明 |
---|---|---|
/pattern | 向后搜索字符串pattern | |
?pattern | 向前搜索字符串pattern | |
"\c" | 忽略大小寫 | |
"\C" | 大小寫敏感 | |
n | 下一個(gè)匹配(如果是/搜索每辟,則是向下的下一個(gè),?搜索則是向上的下一個(gè)) | |
N | 上一個(gè)匹配(同上) | |
:%s/old/new/g | 搜索整個(gè)文件干旧,將所有的old替換為new | |
:%s/old/new/gc | 搜索整個(gè)文件渠欺,將所有的old替換為new,每次都要你確認(rèn)是否替換 |
六椎眯、退出編輯器
按鍵 | 功能 | 說(shuō)明 |
---|---|---|
:w | 將緩沖區(qū)寫入文件挠将,即保存修改 | |
:wq | 保存修改并退出 | |
:x | 保存修改并退出 | |
:q | 退出,如果對(duì)緩沖區(qū)進(jìn)行過(guò)修改编整,則會(huì)提示 | |
:q! | 強(qiáng)制退出舔稀,放棄修改 |
七、多文件編輯
按鍵 | 功能 | 說(shuō)明 |
---|---|---|
vim file1.. | 同時(shí)打開(kāi)多個(gè)文件 | |
:args | 顯示當(dāng)前編輯文件 | |
:next | 切換到下個(gè)文件 | |
:prev | 切換到前個(gè)文件 | |
:next掌测! | 不保存當(dāng)前編輯文件并切換到下個(gè)文件 | |
:prev内贮! | 不保存當(dāng)前編輯文件并切換到上個(gè)文件 | |
:wnext | 保存當(dāng)前編輯文件并切換到下個(gè)文件 | |
:wprev | 保存當(dāng)前編輯文件并切換到上個(gè)文件 | |
:first | 定位首文件 | |
:last | 定位尾文件 | |
ctrl+^ | 快速在最近打開(kāi)的兩個(gè)文件間切換 | |
:split[sp] | 把當(dāng)前文件水平分割 | |
:split file | 把當(dāng)前窗口水平分割, file | |
:vsplit[vsp] file | 把當(dāng)前窗口垂直分割, file | |
:new file | 同split file | |
:close | 關(guān)閉當(dāng)前窗口 | |
:only | 只顯示當(dāng)前窗口, 關(guān)閉所有其他的窗口 | |
:all | 打開(kāi)所有的窗口 | |
:vertical all | 打開(kāi)所有的窗口, 垂直打開(kāi) | |
:qall | 對(duì)所有窗口執(zhí)行:q操作 | |
:qall! | 對(duì)所有窗口執(zhí)行:q!操作 | |
:wall | 對(duì)所有窗口執(zhí)行:w操作 | |
:wqall | 對(duì)所有窗口執(zhí)行:wq操作 | |
ctrl-w h | 跳轉(zhuǎn)到左邊的窗口 | |
ctrl-w j | 跳轉(zhuǎn)到下面的窗口 | |
ctrl-w k | 跳轉(zhuǎn)到上面的窗口 | |
ctrl-w l | 跳轉(zhuǎn)到右邊的窗口 | |
ctrl-w t | 跳轉(zhuǎn)到最頂上的窗口 | |
ctrl-w b | 跳轉(zhuǎn)到最底下的窗口 |
八、多標(biāo)簽編輯
按鍵 | 功能 | 說(shuō)明 |
---|---|---|
:tabedit file | 在新標(biāo)簽中打開(kāi)文件file | |
:tab split file | 在新標(biāo)簽中打開(kāi)文件file | |
:tabp | 切換到前一個(gè)標(biāo)簽 | |
:tabn | 切換到后一個(gè)標(biāo)簽 | |
:tabc | 關(guān)閉當(dāng)前標(biāo)簽 | |
:tabo | 關(guān)閉其他標(biāo)簽 | |
gt | 到下一個(gè)tab | |
gT | 到上一個(gè)tab | |
0gt | 跳到第一個(gè)tab | |
5gt | 跳到第五個(gè)tab |
九汞斧、執(zhí)行shell命令
按鍵 | 說(shuō)明 |
---|---|
1夜郁、在命令模式下輸入":sh",可以運(yùn)行相當(dāng)于在字符模式下粘勒,到輸入結(jié)束想回到VIM編輯器中用exit竞端,ctrl+D返回VIM編輯器 | |
2、可以"!command"仲义,運(yùn)行結(jié)束后自動(dòng)回到VIM編輯器中 | |
3婶熬、用“Ctrl+Z“回到shell,用fg返回編輯 | |
4埃撵、:!make -> 直接在當(dāng)前目錄下運(yùn)行make指令 |
十赵颅、VIM啟動(dòng)項(xiàng)|
按鍵 | 說(shuō)明 |
---|---|
-o[n] | 以水平分屏的方式打開(kāi)多個(gè)文件 |
-O[n] | 以垂直分屏的方式打開(kāi)多個(gè)文件 |
十一、自動(dòng)排版
按鍵 | 說(shuō)明 |
---|---|
在粘貼了一些代碼之后暂刘,vim變得比較亂饺谬,只要執(zhí)行g(shù)g=G就能搞定 |
十二、如何在vim中編譯程序
按鍵 | 說(shuō)明 |
---|---|
在vim中可以完成make,而且可以將編譯的結(jié)果也顯示在vim里谣拣,先執(zhí)行 :copen 命令募寨,將結(jié)果輸出的窗口打開(kāi),然后執(zhí)行 :make編譯后的結(jié)果就顯示在了copen打開(kāi)的小窗口里了森缠,而且用鼠標(biāo)雙擊錯(cuò)誤信息拔鹰,就會(huì)跳轉(zhuǎn)到發(fā)生錯(cuò)誤的行。 |
十三贵涵、buffer操作
按鍵 | 說(shuō)明 |
---|---|
1列肢、buffer狀態(tài) | |
- | (非活動(dòng)的緩沖區(qū)) |
a | (當(dāng)前被激活緩沖區(qū)) |
h | (隱藏的緩沖區(qū)) |
% | (當(dāng)前的緩沖區(qū)) |
# | (交換緩沖區(qū)) |
= | (只讀緩沖區(qū)) |
+ | (已經(jīng)更改的緩沖區(qū)) |
十四恰画、 VIM 操作目錄
按鍵 | 說(shuō)明 |
---|---|
1.打開(kāi)目錄 | |
vim . | |
vim a-path/ | |
2.以下操作在操作目錄時(shí)生效 | |
p,P,t,u,U,x,v,o,r,s | |
c | 使當(dāng)前打開(kāi)的目錄成為當(dāng)前目錄 |
d | 創(chuàng)建目錄 |
% | 創(chuàng)建文件 |
D | 刪除文件/目錄 |
- | 轉(zhuǎn)到上層目錄 |
gb | 轉(zhuǎn)到上一個(gè) bookmarked directory |
i | 改變目錄文件列表方式 |
^l | 刷新當(dāng)前打開(kāi)的目錄 |
mf - | 標(biāo)記文件 |
mu - | unmark all marked files |
mz - | Compress/decompress marked files |
gh | 顯示/不顯示隱藏文件( dot-files) |
^h | 編輯隱藏文件列表 |
a | 轉(zhuǎn)換顯示模式, all - hide - unhide |
qf | diplay infomation about file |
qb | list the bookmarked directories and directory traversal history |
gi | Display information on file |
mb | |
mc | |
md - | 將標(biāo)記的文件(mf標(biāo)記文件)使用 diff 模式 |
me - | 編輯標(biāo)記的文件,只顯示一個(gè),其余放入 buffer 中 |
mh | |
mm - | move marked files to marked-file target directory |
mc - | copy |
mp | |
mr | |
mt | |
vim 中復(fù)制,移動(dòng)文件 | |
1, mt - | 移動(dòng)到的目錄 |
2, mf - | 標(biāo)記要移動(dòng)的文件 |
3, mc - | 移動(dòng)/復(fù)制 |
R 移動(dòng)文件 | |
打開(kāi)當(dāng)前編輯文件的目錄 | |
:Explore | |
:Hexplore | |
:Nexplore | |
:Pexplore | |
:Sexplore | |
:Texplore | |
:Vexplore |