Vim速查表-幫你提高N倍效率

去年上半年開始全面使用linux進(jìn)行開發(fā)和娛樂了,現(xiàn)在已經(jīng)回不去windows了。

話歸正傳,在linux上一直使用vim,慢慢熟悉了它的命令,才終于領(lǐng)悟了什么是編輯器之神。

最近抽空整理了這份速查表,收獲頗豐,并分享給大家。

進(jìn)入vim

命令 描述
vim filename 打開或新建文件,并將光標(biāo)置于第一行首
vim +n filename 打開文件,并將光標(biāo)置于第n行首
vim + filename 打開文件,并將光標(biāo)置于最后一行首
vim +/pattern filename 打開文件,并將光標(biāo)置于第一個(gè)與pattern匹配的串處
vim -r filename 在上次正用vim編輯時(shí)發(fā)生系統(tǒng)崩潰,恢復(fù)filename
vim filename….filename 打開多個(gè)文件,依次編輯

vim配置

命令 描述
all 列出所有選項(xiàng)設(shè)置情況
term 設(shè)置終端類型
ignorance 在搜索中忽略大小寫
list 顯示制表位(Ctrl+I)和行尾標(biāo)志($)
number 顯示行號(hào)
report 顯示由面向行的命令修改過的數(shù)目
terse 顯示簡(jiǎn)短的警告信息
warn 在轉(zhuǎn)到別的文件時(shí)若沒保存當(dāng)前文件則顯示NO write信息
nomagic 允許在搜索模式中,使用前面不帶“\”的特殊字符
nowrapscan 禁止vi在搜索到達(dá)文件兩端時(shí),又從另一端開始
mesg 允許vi顯示其他用戶用write寫到自己終端上的信息
:set number / set nonumber 顯示/不顯示行號(hào)
:set ruler /set noruler 顯示/不顯示標(biāo)尺
:set hlsearch 高亮顯示查找到的單詞
:set nohlsearch 關(guān)閉高亮顯示
:syntax on 語(yǔ)法高亮
:set nu 顯示行號(hào)
:set tabstop=8 設(shè)置tab大小,8為最常用最普遍的設(shè)置
:set softtabstop=8 4:4個(gè)空格,8:正常的制表符,12:一個(gè)制表符4個(gè)空格,16:兩個(gè)制表符
:set autoindent 自動(dòng)縮進(jìn)
:set cindent C語(yǔ)言格式里面的自動(dòng)縮進(jìn)

移動(dòng)光標(biāo)

命令 描述
k nk 上 向上移動(dòng)n行
j nj 下 向下移動(dòng)n行
h nh 左 向左移動(dòng)n行
l nl 右 向右移動(dòng)n行
Space 光標(biāo)右移一個(gè)字符
Backspace 光標(biāo)左移一個(gè)字符
Enter 光標(biāo)下移一行
w/W 光標(biāo)右移一個(gè)字至字首
b/B 光標(biāo)左移一個(gè)字至字首
e或E 光標(biāo)右移一個(gè)字至字尾
) 光標(biāo)移至句尾
( 光標(biāo)移至句首
} 光標(biāo)移至段落開頭
{ 光標(biāo)移至段落結(jié)尾
n$ 光標(biāo)移至第n行尾
H 光標(biāo)移至屏幕頂行
M 光標(biāo)移至屏幕中間行
L 光標(biāo)移至屏幕最后行
0 (注意是數(shù)字零)光標(biāo)移至當(dāng)前行首
^ 移動(dòng)光標(biāo)到行首第一個(gè)非空字符上去
$ 光標(biāo)移至當(dāng)前行尾
gg 移到第一行
G 移到最后一行
f 移動(dòng)光標(biāo)到當(dāng)前行的字符a上
F 相反
% 移動(dòng)到與制匹配的括號(hào)上去(),{},[],<>等
nG 移動(dòng)到第n行上
G 到最后一行

屏幕滾動(dòng)

命令 描述
Ctrl+u 向文件首翻半屏
Ctrl+d 向文件尾翻半屏
Ctrl+f 向文件尾翻一屏
Ctrl+b 向文件首翻一屏
nz 將第n行滾至屏幕頂部,不指定n時(shí)將當(dāng)前行滾至屏幕頂部

插入文本類

命令 描述
i 在光標(biāo)前
I 在當(dāng)前行首
a 光標(biāo)后
A 在當(dāng)前行尾
o 在當(dāng)前行之下新開一行
O 在當(dāng)前行之上新開一行
r 替換當(dāng)前字符
R 替換當(dāng)前字符及其后的字符,直至按ESC鍵
s 從當(dāng)前光標(biāo)位置處開始,以輸入的文本替代指定數(shù)目的字符
S 刪除指定數(shù)目的行,并以所輸入文本代替之
ncw/nCW 修改指定數(shù)目的字
nCC 修改指定數(shù)目的行

刪除命令

命令 描述
x/X 刪除一個(gè)字符,x刪除光標(biāo)后的,而X刪除光標(biāo)前的
dw 刪除一個(gè)單詞(刪除光標(biāo)位置到下一個(gè)單詞開始的位置)
dnw 刪除n個(gè)單詞
dne 也可,只是刪除到單詞尾
do 刪至行首
d$ 刪至行尾
dd 刪除一行
ndd 刪除當(dāng)前行及其后n-1行
dnl 向右刪除n個(gè)字母
dnh 向左刪除n個(gè)字母
dnj 向下刪除n行,當(dāng)前行+其上n行
dnk 向上刪除n行,當(dāng)期行+其下n行
cnw[word] 將n個(gè)word改變?yōu)閣ord
C$ 改變到行尾
cc 改變整行
shift+j 刪除行尾的換行符,下一行接上來了

復(fù)制粘貼

命令 描述
p 粘貼用x或d刪除的文本
ynw 復(fù)制n個(gè)單詞
yy 復(fù)制一行
ynl 復(fù)制n個(gè)字符
y$ 復(fù)制當(dāng)前光標(biāo)至行尾處
nyy 拷貝n行

撤銷

命令 描述
u 撤銷前一次的操作
shif+u(U) 撤銷對(duì)該行的所有操作

搜索及替換

命令 描述
/pattern 從光標(biāo)開始處向文件尾搜索pattern
?pattern 從光標(biāo)開始處向文件首搜索pattern
n 在同一方向重復(fù)上一次搜索命令
N 在反方向上重復(fù)上一次搜索命令
cw newword 替換為newword
n 繼續(xù)查找
. 執(zhí)行替換
:s/p1/p2/g 將當(dāng)前行中所有p1均用p2替代,g表示執(zhí)行 用c表示需要確認(rèn)
:n1,n2 s/p1/p2/g 將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g 將文件中所有p1均用p2替換
:1,$ s/string1/string2/g 在全文中將string1替換為string2

書簽

命令 描述
m[a-z] 在文中做標(biāo)記,標(biāo)記號(hào)可為a-z的26個(gè)字母
`a 移動(dòng)到標(biāo)記a處

visual模式

命令 描述
v 進(jìn)入visual 模式
V 進(jìn)入行的visual 模式
ctrl+v 進(jìn)如塊操作模式用o和O改變選擇的邊的大小
在所有行插入相同的內(nèi)容如include< 將光標(biāo)移到開始插入的位置,按CTRL+V進(jìn)入VISUAL模式,選擇好模塊后按I(shift+i),后插入要插入的文本,按[ESC]完成

行方式命令

命令 描述
:n1,n2 co n3 將n1行到n2行之間的內(nèi)容拷貝到第n3行下
:n1,n2 m n3 將n1行到n2行之間的內(nèi)容移至到第n3行下
:n1,n2 d 將n1行到n2行之間的內(nèi)容刪除
:n1,n2 w!command 將文件中n1行至n2行的內(nèi)容作為command的輸入并執(zhí)行之
若不指定n1,n2,則表示將整個(gè)文件內(nèi)容作為command的輸入

命令 描述
q[a-z] 開始記錄但前開始的操作為宏,名稱可為【a-z】,然后用q終止錄制宏
reg 顯示當(dāng)前定義的所有的宏,用@[a-z]來在當(dāng)前光標(biāo)處執(zhí)行宏[a-z]

窗口操作

命令 描述
:split 分割一個(gè)窗口
:split file.c 為另一個(gè)文件file.c分隔窗口
:nsplit file.c 為另一個(gè)文件file.c分隔窗口,并指定其行數(shù)
ctrl+w 在窗口中切換
:close 關(guān)閉當(dāng)前窗口

文件及其他

命令 描述
:q 退出vi
:q! 不保存文件并退出vi
:e filename 打開文件filename進(jìn)行編輯
:e! 放棄修改文件內(nèi)容,重新載入該文件編輯
:w 保存當(dāng)前文件
:wq 存盤退出
:ZZ 保存當(dāng)前文檔并退出VIM
:!command 執(zhí)行shell命令command
:r!command 將命令command的輸出結(jié)果放到當(dāng)前行
:n1,n2 write temp.c
:read file.c 將文件file.c的內(nèi)容插入到當(dāng)前光標(biāo)所在的下面
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 待整理~ 1、vim ~/.vimrc 進(jìn)入配置文件 如果不知道vimrc文件在哪,可使用 :scriptname...
    spfanlost閱讀 1,832評(píng)論 0 0
  • 目錄(?)[-] 關(guān)于Vim 1 Vim的幾種模式 啟動(dòng)Vim 文檔操作 光標(biāo)的移動(dòng) 1 基本移動(dòng) 2 翻屏 3 ...
    SunnyLeong閱讀 9,011評(píng)論 0 32
  • 最近集中讀了幾本關(guān)于Vim的書,?以《Practical Vim》最為詳盡,特重新溫習(xí)并總結(jié)成篇,一來作為復(fù)習(xí)和練...
    南瓜不胡鬧閱讀 6,233評(píng)論 1 29
  • 感恩蕾蕾,讓我學(xué)會(huì)了愛比抱怨有用 感恩洋,陪我回家很溫暖 感恩媽媽姥姥做很多好吃的給我們 感恩爸爸,辛勤的為了這個(gè)...
    朱雨哲閱讀 297評(píng)論 0 0
  • day2作業(yè) colspancolspan這個(gè)標(biāo)簽可以將表格中的橫行單元格合并 rowspanrowspan這個(gè)標(biāo)...
    愛吃貓肉的老鼠閱讀 296評(píng)論 0 0

友情鏈接更多精彩內(nèi)容