1. 程式人生 > >【轉】Vim速查表-幫你提高N倍效率

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

name 娛樂 描述 類型 輸出 打開文件 搜索命令 note 小寫

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

轉自:https://www.jianshu.com/p/6aa2e0e39f99

去年上半年開始全面使用linux進行開發和娛樂了,現在已經回不去windows了。

話歸正傳,在linux上一直使用vim,慢慢熟悉了它的命令,才終於領悟了什麽是編輯器之神。

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

進入vim

命令描述
vim filename 打開或新建文件,並將光標置於第一行首
vim +n filename 打開文件,並將光標置於第n行首
vim + filename 打開文件,並將光標置於最後一行首
vim +/pattern filename 打開文件,並將光標置於第一個與pattern匹配的串處
vim -r filename 在上次正用vim編輯時發生系統崩潰,恢復filename
vim filename….filename 打開多個文件,依次編輯

vim配置

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

移動光標

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

屏幕滾動

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

插入文本類

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

刪除命令

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

復制粘貼

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

撤銷

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

搜索及替換

命令描述
/pattern 從光標開始處向文件尾搜索pattern
?pattern 從光標開始處向文件首搜索pattern
n 在同一方向重復上一次搜索命令
N 在反方向上重復上一次搜索命令
cw newword 替換為newword
n 繼續查找
. 執行替換
:s/p1/p2/g 將當前行中所有p1均用p2替代,g表示執行 用c表示需要確認
: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] 在文中做標記,標記號可為a-z的26個字母
`a 移動到標記a處

visual模式

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

行方式命令

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

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

窗口操作

命令描述
:split 分割一個窗口
:split file.c 為另一個文件file.c分隔窗口
:nsplit file.c 為另一個文件file.c分隔窗口,並指定其行數
ctrl+w 在窗口中切換
:close 關閉當前窗口

文件及其他

命令描述
:q 退出vi
:q! 不保存文件並退出vi
:e filename 打開文件filename進行編輯
:e! 放棄修改文件內容,重新載入該文件編輯
:w 保存當前文件
:wq 存盤退出
:ZZ 保存當前文檔並退出VIM
:!command 執行shell命令command
:r!command 將命令command的輸出結果放到當前行
:n1,n2 write temp.c
:read file.c 將文件file.c的內容插入到當前光標所在的下面

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