1. 程式人生 > >vim使用指南及vim快捷鍵

vim使用指南及vim快捷鍵

文章目錄

移動游標

h, j, k, l 上,下,左,右
ctrl-e 移動頁面
ctrl-f 上翻一頁
ctrl-b 下翻一頁
ctrl-u 上翻半頁
ctrl-d 下翻半頁
w 跳到下一個字首,按標點或單詞分割
W 跳到下一個字首,長跳,如end-of-line被認為是一個字
e 跳到下一個字尾
E 跳到下一個字尾,長跳
b 跳到上一個字
B 跳到上一個字,長跳
0 跳至行首,不管有無縮排,就是跳到第0個字元
^ 跳至行首的第一個字元
$ 跳至行尾
gg 跳至文首
G 調至文尾
5gg/5G 調至第5行
gd 跳至當前游標所在的變數的宣告處
fx 在當前行中找x字元,找到了就跳轉至
; 重複上一個f命令,而不用重複的輸入fx
* 查詢游標所在處的單詞,向下查詢
# 查詢游標所在處的單詞,向上查詢

刪除複製

dd 刪除游標所在行
dw 刪除一個字(word)
d/D刪除到行末x刪除當前字元X刪除前一個字元yy複製一行yw複製一個字y/Y 複製到行末
p 貼上貼上板的內容到當前行的下面
P 貼上貼上板的內容到當前行的上面

插入模式

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

編輯

J 將下一行和當前行連線為一行
cc 刪除當前行並進入編輯模式
cw 刪除當前字,並進入編輯模式
c$ 擦除從當前位置至行末的內容,並進入編輯模式
s 刪除當前字元並進入編輯模式
S 刪除游標所在行並進入編輯模式
xp 交換當前字元和下一個字元
u 撤銷
ctrl+r 重做
~ 切換大小寫,當前字元
>> 將當前行右移一個單位
<< 將當前行左移一個單位(一個tab符)
== 自動縮排當前行

查詢

/pattern 向後搜尋字串pattern
?pattern 向前搜尋字串pattern
"\c" 忽略大小寫
"\C" 大小寫敏感
n 下一個匹配(如果是/搜尋,則是向下的下一個,?搜尋則是向上的下一個)
N 上一個匹配(同上)

替換

:%s/old/new/g 搜尋整個檔案,將所有的old替換為new
:%s/old/new/gc 搜尋整個檔案,將所有的old替換為new,每次都要你確認是否替換

退出編輯器

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

多檔案編輯

vim file1.. 同時開啟多個檔案
:args 顯示當前編輯檔案
:next 切換到下個檔案
:prev 切換到前個檔案
:next! 不儲存當前編輯檔案並切換到下個檔案
:prev! 不儲存當前編輯檔案並切換到上個檔案
:wnext 儲存當前編輯檔案並切換到下個檔案
:wprev 儲存當前編輯檔案並切換到上個檔案
:first 定位首檔案
:last 定位尾檔案
ctrl+^ 快速在最近開啟的兩個檔案間切換
:split[sp] 把當前檔案水平分割
:split file 把當前視窗水平分割, file
:vsplit[vsp] file 把當前視窗垂直分割, file
:new file 同split file
:close 關閉當前視窗
:only 只顯示當前視窗, 關閉所有其他的視窗
:all 開啟所有的視窗
:vertical all 開啟所有的視窗, 垂直開啟
:qall 對所有視窗執行:q操作
:qall! 對所有視窗執行:q!操作
:wall 對所有視窗執行:w操作
:wqall 對所有視窗執行:wq操作
ctrl-w h 跳轉到左邊的視窗
ctrl-w j 跳轉到下面的視窗
ctrl-w k 跳轉到上面的視窗
ctrl-w l 跳轉到右邊的視窗
ctrl-w t 跳轉到最頂上的視窗
ctrl-w b 跳轉到最底下的視窗

多標籤編輯

:tabedit file 在新標籤中開啟檔案file
:tab split file 在新標籤中開啟檔案file
:tabp 切換到前一個標籤
:tabn 切換到後一個標籤
:tabc 關閉當前標籤
:tabo 關閉其他標籤
gt 到下一個tab
gT 到上一個tab
0gt 跳到第一個tab
5gt 跳到第五個tab

執行shell命令

1、在命令模式下輸入":sh",可以執行相當於在字元模式下,到輸入結束想回到VIM編輯器中用exit,ctrl+D返回VIM編輯器
2、可以"!command",執行結束後自動回到VIM編輯器中
3、用“Ctrl+Z“回到shell,用fg返回編輯
4、:!make -> 直接在當前目錄下執行make指令

VIM啟動項

-o[n] 以水平分屏的方式開啟多個檔案
-O[n] 以垂直分屏的方式開啟多個檔案

自動排版

在貼上了一些程式碼之後,vim變得比較亂,只要執行gg=G就能搞定

如何在vim中編譯程式

在vim中可以完成make,而且可以將編譯的結果也顯示在vim裡,先執行 :copen 命令,將結果輸出的視窗開啟,然後執行 :make
編譯後的結果就顯示在了copen開啟的小窗口裡了,而且用滑鼠雙擊錯誤資訊,就會跳轉到發生錯誤的行。

buffer操作

buffer狀態

- (非活動的緩衝區)
a (當前被啟用緩衝區)
h (隱藏的緩衝區)
% (當前的緩衝區)
# (交換緩衝區)
= (只讀緩衝區)
+ (已經更改的緩衝區)

VIM 操作目錄

開啟目錄

vim .
vim a-path/

以下操作在操作目錄時生效

p,P,t,u,U,x,v,o,r,s

c 使當前開啟的目錄成為當前目錄
d 建立目錄
% 建立檔案
D 刪除檔案/目錄
- 轉到上層目錄
gb 轉到上一個 bookmarked directory
i 改變目錄檔案列表方式
^l 重新整理當前開啟的目錄

mf - 標記檔案
mu - unmark all marked files
mz - Compress/decompress marked files
gh 顯示/不顯示隱藏檔案( dot-files)
^h 編輯隱藏檔案列表
a 轉換顯示模式, 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 - 將標記的檔案(mf標記檔案)使用 diff 模式
me - 編輯標記的檔案,只顯示一個,其餘放入 buffer 中
mh
mm - move marked files to marked-file target directory
mc - copy
mp
mr
mt

vim 中複製,移動檔案

1, mt - 移動到的目錄
2, mf - 標記要移動的檔案
3, mc - 移動/複製

R 移動檔案

開啟當前編輯檔案的目錄

:Explore
:Hexplore
:Nexplore
:Pexplore
:Sexplore
:Texplore
:Vexplore

詳細使用教程