想要一勞永逸地配制出漂亮強大的Vim, 試試VimPlus吧!

VimPlus logo
安裝簡單,界面優(yōu)美,功能強大!
用過一次,就會愛不釋手!
Github 地址:https://github.com/chxuan/vimplus
安裝步驟:
使用截圖:git clone https://github.com/chxuan/vimplus.git ~/.vimplus
cd ~/.vimplus
./install.sh #不加sudo

使用中的 VimPlus
插件相關
| 快捷鍵 | 說明 |
|---|---|
, |
Leader Key |
<leader>n |
打開/關閉代碼資源管理器 |
<leader>t |
打開/關閉函數(shù)列表 |
<leader>a |
.h .cpp 文件切換 |
<leader>u |
轉(zhuǎn)到函數(shù)聲明 |
<leader>U |
轉(zhuǎn)到函數(shù)實現(xiàn) |
<leader>u |
轉(zhuǎn)到變量聲明 |
<leader>o |
打開include文件 |
<leader>y |
拷貝函數(shù)聲明 |
<leader>p |
生成函數(shù)實現(xiàn) |
<leader>w |
單詞跳轉(zhuǎn) |
<leader>f |
搜索~目錄下的文件 |
<leader>F |
搜索當前目錄下的文本 |
<leader>g |
顯示git倉庫提交記錄 |
<leader>G |
顯示當前文件提交記錄 |
<leader>gg |
顯示當前文件在某個commit下的完整內(nèi)容 |
<leader>ff |
語法錯誤自動修復(FixIt) |
<c-p> |
切換到上一個buffer |
<c-n> |
切換到下一個buffer |
<leader>d |
刪除當前buffer |
<leader>D |
刪除當前buffer外的所有buffer |
vim |
運行vim編輯器時,默認啟動開始頁面 |
<F5> |
顯示語法錯誤提示窗口 |
<F9> |
顯示上一主題 |
<F10> |
顯示下一主題 |
<leader>l |
按豎線對齊 |
<leader>= |
按等號對齊 |
Ya |
復制行文本到字母a |
Da |
剪切行文本到字母a |
Ca |
改寫行文本到字母a |
rr |
替換文本 |
<leader>r |
全局替換,目前只支持單個文件 |
gcc |
注釋代碼 |
gcap |
注釋段落 |
vif |
選中函數(shù)內(nèi)容 |
dif |
刪除函數(shù)內(nèi)容 |
cif |
改寫函數(shù)內(nèi)容 |
vaf |
選中函數(shù)內(nèi)容(包括函數(shù)名 花括號) |
daf |
刪除函數(shù)內(nèi)容(包括函數(shù)名 花括號) |
caf |
改寫函數(shù)內(nèi)容(包括函數(shù)名 花括號) |
fa |
查找字母a,然后再按f鍵查找下一個 |
<leader>e |
快速編輯vimrc文件 |
<leader>s |
重新加載vimrc文件 |
<leader>h |
打開vimplus幫助文檔 |
<leader>H |
打開當前光標所在單詞的vim幫助文檔 |
<leader><leader>y |
復制當前選中到系統(tǒng)剪切板 |
<leader><leader>i |
安裝插件 |
<leader><leader>u |
更新插件 |
<leader><leader>c |
刪除插件 |
插入模式
| 快捷鍵 | 說明 |
|---|---|
i |
在光標處進入插入模式 |
I |
在行首進入插入模式 |
a |
在光標后進入插入模式 |
A |
在行尾進入插入模式 |
o |
在下一行插入新行并進入插入模式 |
O |
在上一行插入新行并進入插入模式 |
gi |
進入到上一次插入模式的位置 |
<esc> |
退出插入模式 |
緩存操作
| 快捷鍵 | 說明 |
|---|---|
:e <filename> |
新建buffer打開文件 |
:bp |
切換到上一個buffer |
:bn |
切換到下一個buffer |
:bd |
刪除當前buffer |
窗口操作
| 快捷鍵 | 說明 |
|---|---|
:sp <filename> |
橫向切分窗口并打開文件 |
:vsp <filename> |
豎向切分窗口并打開文件 |
<c-w>h |
跳到左邊的窗口 |
<c-w>j |
跳到下邊的窗口 |
<c-w>k |
跳到上邊的窗口 |
<c-w>l |
跳到右邊的窗口 |
<c-w>c |
關閉當前窗口 |
<c-w>o |
關閉其他窗口 |
:only |
關閉其他窗口 |
光標移動
| 快捷鍵 | 說明 |
|---|---|
h |
上下左右移動 |
j |
上下左右移動 |
k |
上下左右移動 |
l |
上下左右移動 |
0 |
光標移動到行首 |
^ |
跳到從行首開始第一個非空白字符 |
$ |
光標移動到行尾 |
<c-o> |
跳到上一個位置 |
<c-i> |
跳到下一個位置 |
<c-b> |
上一頁 |
<c-f> |
下一頁 |
<c-u> |
上移半屏 |
<c-d> |
下移半屏 |
H |
調(diào)到屏幕頂上 |
M |
調(diào)到屏幕中間 |
L |
調(diào)到屏幕下方 |
:n |
跳到第n行 |
w |
跳到下一個單詞開頭(標點或空格分隔的單詞) |
W |
跳到下一個單詞開頭(空格分隔的單詞) |
e |
跳到下一個單詞尾部(標點或空格分隔的單詞) |
E |
跳到下一個單詞尾部(空格分隔的單詞) |
b |
上一個單詞頭(標點或空格分隔的單詞) |
B |
上一個單詞頭(空格分隔的單詞) |
ge |
上一個單詞尾 |
% |
在配對符間移動, 可用于()、{}、[] |
gg |
到文件首 |
G |
到文件尾 |
fx |
跳轉(zhuǎn)到下一個為x的字符 |
Fx |
跳轉(zhuǎn)到上一個為x的字符 |
tx |
跳轉(zhuǎn)到下一個為x的字符前 |
Tx |
跳轉(zhuǎn)到上一個為x的字符前 |
; |
跳到下一個搜索的結(jié)果 |
[[ |
跳轉(zhuǎn)到函數(shù)開頭 |
]] |
跳轉(zhuǎn)到函數(shù)結(jié)尾 |
文本編輯
| 快捷鍵 | 說明 |
|---|---|
r |
替換當前字符 |
R |
進入替換模式,直至 ESC 離開 |
s |
替換字符(刪除光標處字符,并進入插入模式,前可接數(shù)量) |
S |
替換行(刪除當前行,并進入插入模式,前可接數(shù)量) |
cc |
改寫當前行(刪除當前行并進入插入模式),同 S |
cw |
改寫光標開始處的當前單詞 |
ciw |
改寫光標所處的單詞 |
caw |
改寫光標所處的單詞,并且包括前后空格(如果有的話) |
ct, |
改寫到逗號 |
c0 |
改寫到行首 |
c^ |
改寫到行首(第一個非零字符) |
c$ |
改寫到行末 |
C |
改寫到行末(同 c$) |
ci" |
改寫雙引號中的內(nèi)容 |
ci' |
改寫單引號中的內(nèi)容 |
ci) |
改寫小括號中的內(nèi)容 |
ci] |
改寫中括號中內(nèi)容 |
ci} |
改寫大括號中內(nèi)容 |
cit |
改寫 xml tag 中的內(nèi)容 |
cis |
改寫當前句子 |
ciB |
改寫'{}'中的內(nèi)容 |
c2w |
改寫下兩個單詞 |
ct( |
改寫到小括號前 |
x |
刪除當前字符,前面可以接數(shù)字,3x代表刪除三個字符 |
X |
向前刪除字符 |
dd |
刪除當前行 |
d0 |
刪除到行首 |
d^ |
刪除到行首(第一個非零字符) |
d$ |
刪除到行末 |
D |
刪除到行末(同 d$) |
dw |
刪除當前單詞 |
dt, |
刪除到逗號 |
diw |
刪除光標所處的單詞 |
daw |
刪除光標所處的單詞,并包含前后空格(如果有的話) |
di" |
刪除雙引號中的內(nèi)容 |
di' |
刪除單引號中的內(nèi)容 |
di) |
刪除小括號中的內(nèi)容 |
di] |
刪除中括號中內(nèi)容 |
di} |
刪除大括號中內(nèi)容 |
diB |
刪除'{}'中的內(nèi)容 |
dit |
刪除 xml tag 中的內(nèi)容 |
dis |
刪除當前句子 |
d2w |
刪除下兩個單詞 |
dt( |
刪除到小括號前 |
dgg |
刪除到文件頭部 |
dG |
刪除到文件尾部 |
d} |
刪除下一段 |
d{ |
刪除上一段 |
u |
撤銷 |
U |
撤銷整行操作 |
CTRL-R |
撤銷上一次 u 命令 |
J |
連接若干行 |
gJ |
連接若干行,刪除空白字符 |
. |
重復上一次操作 |
~ |
交換大小寫 |
g~iw |
替換當前單詞的大小寫 |
gUiw |
將單詞轉(zhuǎn)成大寫 |
guiw |
將當前單詞轉(zhuǎn)成小寫 |
guu |
全行轉(zhuǎn)為小寫 |
gUU |
全行轉(zhuǎn)為大寫 |
gg=G |
縮進整個文件 |
=a{ |
縮進光標所在代碼塊 |
=i{ |
縮進光標所在代碼塊,不縮進"{" |
<< |
減少縮進 |
>> |
增加縮進 |
== |
自動縮進 |
CTRL-A |
增加數(shù)字 |
CTRL-X |
減少數(shù)字 |
p |
粘貼到光標后 |
P |
粘貼到光標前 |
v |
開始標記 |
y |
復制標記內(nèi)容 |
V |
開始按行標記 |
CTRL-V |
開始列標記 |
y$ |
復制當前位置到本行結(jié)束的內(nèi)容 |
yy |
復制當前行 |
Y |
復制當前行,同 yy |
yt, |
復制到逗號 |
yiw |
復制當前單詞 |
"+y |
復制當前選中到系統(tǒng)剪切板 |
3yy |
復制光標下三行內(nèi)容 |
v0 |
選中當前位置到行首 |
v$ |
選中當前位置到行末 |
vt, |
選中到逗號 |
viw |
選中當前單詞 |
vi) |
選中小括號內(nèi)的東西 |
vi] |
選中中括號內(nèi)的東西 |
viB |
選中'{}'中的內(nèi)容 |
vis |
選中句子中的東西 |
gv |
重新選擇上一次選中的文字 |
:set paste |
允許粘貼模式(避免粘貼時自動縮進影響格式) |
:set nopaste |
禁止粘貼模式 |
"?yy |
復制當前行到寄存器 ? ,問號代表 0-9 的寄存器名稱 |
"?p |
將寄存器 ? 的內(nèi)容粘貼到光標后 |
"?P |
將寄存器 ? 的內(nèi)容粘貼到光標前 |
:registers |
顯示所有寄存器內(nèi)容 |
:[range]y |
復制范圍,比如 :20,30y 是復制20到30行,:10y 是復制第十行 |
:[range]d |
刪除范圍,比如 :20,30d 是刪除20到30行,:10d 是刪除第十行 |
ddp |
交換兩行內(nèi)容:先刪除當前行復制到寄存器,并粘貼 |
文件操作
| 快捷鍵 | 說明 |
|---|---|
:w |
保存文件 |
:w <filename> |
按名稱保存文件 |
ZZ |
保存文件(如果有改動的話),并關閉窗口 |
:e <filename> |
打開文件并編輯 |
:saveas <filename> |
另存為文件 |
:r <filename> |
讀取文件并將內(nèi)容插入到光標后 |
:r !dir |
將dir命令的輸出捕獲并插入到光標后 |
:close |
關閉文件 |
:q |
退出 |
:q! |
強制退出 |
:wa |
保存所有文件 |
:cd <path> |
切換Vim當前路徑 |
:new |
打開一個新的窗口編輯新文件 |
:enew |
在當前窗口創(chuàng)建新文件 |
:vnew |
在左右切分的新窗口中編輯新文件 |
:tabnew |
在新的標簽頁中編輯新文件 |
使用外部程序
| 快捷鍵 | 說明 |
|---|---|
! |
告訴vim正在執(zhí)行一個過濾操作 |
!5Gsort<Enter> |
使用外部sort命令對1-5行文本排序 |
!! |
對當前行執(zhí)行過濾命令 |
!!date<Enter> |
用"date"的輸出代替當前行 |
宏錄制
| 快捷鍵 | 說明 |
|---|---|
qa |
開始錄制名字為a的宏 |
q |
結(jié)束錄制宏 |
@a |
播放名字為a的宏 |
100@a |
播放名字為a的宏100次 |
:normal@a |
播放名字為a的宏直到自動結(jié)束 |
實用命令
| 快捷鍵 | 說明 |
|---|---|
/pattern |
從光標處向文件尾搜索 pattern |
?pattern |
從光標處向文件頭搜索 pattern |
n |
向同一方向執(zhí)行上一次搜索 |
N |
向相反方向執(zhí)行上一次搜索 |
* |
向前搜索光標下的單詞 |
# |
向后搜索光標下的單詞 |
:s/p1/p2/g |
替換當前行的p1為p2 |
:%s/p1/p2/g |
替換當前文件中的p1為p2 |
:%s/<p1>/p2/g |
替換當前文件中的p1單詞為p2 |
:%s/p1/p2/gc |
替換當前文件中的p1為p2,并且每處詢問你是否替換 |
:10,20s/p1/p2/g |
將第10到20行中所有p1替換為p2 |
:%s/1\\2\/3/123/g |
將“1\2/3” 替換為 “123”(特殊字符使用反斜杠標注) |
:%s/\r//g |
刪除 DOS 換行符 ^M |
:g/^\s*$/d |
刪除空行 |
:g/test/d |
刪除所有包含 test 的行 |
:v/test/d |
刪除所有不包含 test 的行 |
:%s/^/test/ |
在行首加入特定字符(也可以用宏錄制來添加) |
:%s/$/test/ |
在行尾加入特定字符(也可以用宏錄制來添加) |
:sort |
排序 |
:g/^\(.\+\)$\n\1/d |
去除重復行(先排序) |
:%s/^.\{10\}// |
刪除每行前10個字符 |
:%s/.\{10\}$// |
刪除每行尾10個字符 |
幫助
| 快捷鍵 | 說明 |
|---|---|
h tutor |
入門文檔 |
h quickref |
快速幫助 |
h index |
查詢Vim所有鍵盤命令定義 |
h summary |
幫助你更好的使用內(nèi)置幫助系統(tǒng) |
h pattern.txt |
正則表達式幫助 |
h eval |
腳本編寫幫助 |
h function-list |
查看VimScript的函數(shù)列表 |
h windows.txt |
窗口使用幫助 |
h tabpage.txt |
標簽頁使用幫助 |
h tips |
查看Vim內(nèi)置的常用技巧文檔 |
h quote |
寄存器 |
h autocommand-events |
所有可能事件 |
h write-plugin |
編寫插件 |
其他
| 快捷鍵 | 說明 |
|---|---|
vim -u NONE -N |
開啟vim時不加載vimrc文件 |
vimdiff file1 file2 |
顯示文件差異 |
vim -R filename |
以只讀方式打開(閱讀模式) |