一、移動(dòng)光標(biāo)
h,j,k,l 上,下,左,右
ctrl-e 移動(dòng)頁面
ctrl-f 上翻一頁
ctrl-b 下翻一頁
ctrl-u 上翻半頁
ctrl-d 下翻半頁
w 跳到下一個(gè)字首,按標(biāo)點(diǎn)或單詞分割
W 跳到下一個(gè)字首,長跳,如end-of-line被認(rèn)為是一個(gè)字
e 跳到下一個(gè)字尾
E 跳到下一個(gè)字尾,長跳
b 跳到上一個(gè)字
B 跳到上一個(gè)字,長跳
0 跳至行首,不管有無縮進(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ù)制
dd 刪除光標(biāo)所在行
dw 刪除一個(gè)字(word)
d/D刪除到行末x刪除當(dāng)前字符X刪除前一個(gè)字符yy復(fù)制一行yw復(fù)制一個(gè)字y/D刪除到行末x刪除當(dāng)前字符X刪除前一個(gè)字符yy復(fù)制一行yw復(fù)制一個(gè)字y/Y 復(fù)制到行末
p 粘貼粘貼板的內(nèi)容到當(dāng)前行的下面
P 粘貼粘貼板的內(nèi)容到當(dāng)前行的上面
三、插入模式
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 退出插入模式
四、編輯
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)前行
五、查找替換
/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)是否替換
六、退出編輯器
:w 將緩沖區(qū)寫入文件,即保存修改
:wq 保存修改并退出
:x 保存修改并退出
:q 退出,如果對(duì)緩沖區(qū)進(jìn)行過修改,則會(huì)提示
:q! 強(qiáng)制退出,放棄修改
七、多文件編輯
vim file1.. 同時(shí)打開多個(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+^ 快速在最近打開的兩個(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 打開所有的窗口
:vertical all 打開所有的窗口, 垂直打開
: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)簽編輯
:tabedit file 在新標(biāo)簽中打開文件file
:tab split file 在新標(biāo)簽中打開文件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命令
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)
-o[n] 以水平分屏的方式打開多個(gè)文件
-O[n] 以垂直分屏的方式打開多個(gè)文件
十一、自動(dòng)排版
在粘貼了一些代碼之后,vim變得比較亂,只要執(zhí)行g(shù)g=G就能搞定
十二、如何在vim中編譯程序
在vim中可以完成make,而且可以將編譯的結(jié)果也顯示在vim里,先執(zhí)行 :copen 命令,將結(jié)果輸出的窗口打開,然后執(zhí)行 :make
編譯后的結(jié)果就顯示在了copen打開的小窗口里了,而且用鼠標(biāo)雙擊錯(cuò)誤信息,就會(huì)跳轉(zhuǎn)到發(fā)生錯(cuò)誤的行。
十三、buffer操作
1、buffer狀態(tài)
- (非活動(dòng)的緩沖區(qū))
a (當(dāng)前被激活緩沖區(qū))
h (隱藏的緩沖區(qū))
% (當(dāng)前的緩沖區(qū))
# (交換緩沖區(qū))
= (只讀緩沖區(qū))
+ (已經(jīng)更改的緩沖區(qū))
十四、 VIM 操作目錄
1.打開目錄
vim .
vim a-path/
2.以下操作在操作目錄時(shí)生效
p,P,t,u,U,x,v,o,r,s
c 使當(dāng)前打開的目錄成為當(dāng)前目錄
d 創(chuàng)建目錄
% 創(chuàng)建文件
D 刪除文件/目錄
- 轉(zhuǎn)到上層目錄
gb 轉(zhuǎn)到上一個(gè) bookmarked directory
i 改變目錄文件列表方式
^l 刷新當(dāng)前打開的目錄
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)文件
打開當(dāng)前編輯文件的目錄
:Explore
:Hexplore
:Nexplore
:Pexplore
:Sexplore
:Texplore
:Vexplore