其他命令
<c-L> 重繪屏幕
<c-z> 掛起vim回到shell,想繼續(xù)vim只需要輸入 fg
<c-x-f> 文件路徑提示
<c-N> 當(dāng)前文件中的關(guān)鍵字提示
<C-X><C-O> 語義上的補(bǔ)全
J 于下一行文本合并
% 在括號間跳轉(zhuǎn),配合v可以選中代碼塊
~ 光標(biāo)下的字符轉(zhuǎn)化為大寫
:66,70s/^/\/\/ 66-70行添加 //注釋
:66,70s/^\/\// 取消多行注釋
:read index.html 讀入文件的內(nèi)容放在當(dāng)前行的后面
:! <bash 命令> 執(zhí)行bash命令行
字符查找
fa 查找當(dāng)前行光標(biāo)后的 a 字符, ";"分號重復(fù)查找命令,","與";"相反
Fa 查找光標(biāo)簽前的a
3fa 查找當(dāng)前行光標(biāo)后的第3個a文本
還有 ta ,2ta,移動到a的前面
/word + 回車 從當(dāng)前的行向下查找 n向下切, N向上切
N * 向前查找光標(biāo)下的標(biāo)識符(完全匹配)
N # 向后查找光標(biāo)下的標(biāo)識符(完全匹配)
g* 類似 *(模糊匹配)
g# 類似 #(模糊匹配)
gd 轉(zhuǎn)到本地聲明
gD 轉(zhuǎn)到global聲明
塊級光標(biāo)移動
w 跳到下一個word開頭
e 跳到當(dāng)前word結(jié)尾
b 跳到上一個word開頭
ge 跳到上一個word結(jié)尾 ctrl+ <
行級光標(biāo)移動
G 整個文檔的最后一行
gg 整個文檔的第一行行
3G 跳轉(zhuǎn)到3行, G意為Go
N zh 屏幕右滾 N 個字符
N zl 屏幕左滾 N 個字符
N zH 屏幕右滾半個屏寬
N zL 屏幕左滾半個屏寬
刪除文本
被刪除的文本都可以用p取回來, put
x 刪除當(dāng)前光標(biāo)下的字符("dl"的快捷命令)
X 刪除當(dāng)前光標(biāo)之前的字符("dh"的快捷命令)
D 刪除自當(dāng)前光標(biāo)至行尾的內(nèi)容("d$"的快捷命令)
dw 刪除自當(dāng)前光標(biāo)至下一個 word 的開頭
db 刪除自當(dāng)前光標(biāo)至前一個 word 的開始
diw 刪除當(dāng)前光標(biāo)所在的 word(不包括空白字符)
daw 刪除當(dāng)前光標(biāo)所在的 word(包括空白字符)
dG 刪除當(dāng)前行至文件尾的內(nèi)容
dgg 刪除當(dāng)前行至文件頭的內(nèi)容
上面的d命令都可以用 c,y代替
4x 刪除4個文字
cw 刪除word并進(jìn)入插入模式
dd 刪除一行,
d$ 刪除到行尾的內(nèi)容, d^
cc 改變整行
. 重復(fù)上一次的刪除命令
替換
R 輸入的文字會替換光標(biāo)下的文字
<Insert>鍵可以再 i 和 R 模式之間切換
<BS> 退格鍵可以撤銷替換
ra 把光標(biāo)下的文字替換為a
4ra 把四個替換為a
r<Enter> 替換為一個換行符
:%s/name/ajanuw/g 默認(rèn)執(zhí)行全部name替換為ajanuw
:%s/name/ajanuw/gc 每執(zhí)行一次都需要同意,還是跳過
:1,5s/this/that/g 第 1 到第 5 行的文本執(zhí)行替換操作,包括第 1 行和第 5行
復(fù)制粘貼
yy 復(fù)制當(dāng)前行
yw 復(fù)制一個word
p 粘貼到光標(biāo)后
P 粘貼到光標(biāo)前
"*yy 復(fù)制
"*p 粘貼
"ay復(fù)制 "ap 粘貼,寄存器的名字為[a-z]
撤銷
N u 撤銷最近的 N 此改動
N CTRL-R 重做最近的 N 個被撤銷的改動
U 恢復(fù)最近被改動的行
縮進(jìn),對齊,折疊
gg=G 是一個自動縮進(jìn)的命令
== 整理當(dāng)行
= 整理選中的行
:>> 設(shè)置縮進(jìn) http://vim.wikia.com/wiki/Shifting_blocks_visually
:<<
zf} 折疊代碼 Docs: https://www.2cto.com/os/201203/122133.html
zc 開合折疊 https://vim.fandom.com/wiki/Folding
zo 打開光標(biāo)下的折疊
zO 打開光標(biāo)下的所有折疊
zR 打開所有折疊
編輯另一個文件
:f {name} 設(shè)置當(dāng)前文件名為name
:e ! 重載當(dāng)前文件
:e foo.txt 關(guān)閉當(dāng)前文件,打開指定文件,當(dāng)前文件未保存會出現(xiàn)錯誤信息
:e! foo.txt 強(qiáng)制打開指定文件
錯誤有對應(yīng)的 ID 號, :help E37 查看錯誤幫助
文件標(biāo)記
m m{a-zA-Z} 用標(biāo)記 {a-zA-Z} 記錄當(dāng)前位置
`a `{a-z} 至當(dāng)前文件中的標(biāo)記 {a-z}
'' `` 到最近一次跳轉(zhuǎn)之前的位置
'" `" 最后退出當(dāng)前緩沖區(qū)時到光標(biāo)位置。默認(rèn)為第一行的第一個字符
'. `. 到最后一次更改的位置
保存一份原始文件
:set patchmode=.orign
分頁
簡寫 sp
:split 上下分頁
:split index.html
:vsplit 左右分頁
<c-w> 點(diǎn)擊w在分屏中移動
// 移動窗口
CTRL-W H 到左邊的窗口
CTRL-W J 到下面的窗口
CTRL-W K 到上面的窗口
CTRL-W L 到右邊的窗口
<c-w 10 >> 增加當(dāng)前屏幕的寬度 < 向右放大, > 向左放大,10代表次數(shù)
CTRL-W + 增加當(dāng)前窗口高度
CTRL-W - 減小
:q 關(guān)閉當(dāng)前文件
:close 關(guān)閉當(dāng)前窗口,阻止你關(guān)閉最后一個窗口
:only 關(guān)閉除當(dāng)前窗口以外的窗口
:wa 保存所有窗口打開的文件
:qa 退出所有文件,有未保存的文件無法退出
:wqa 保存并退出所有窗口。
目錄 和 Tab導(dǎo)航
vim . 打開當(dāng)前目錄
:Ve 在左側(cè)邊欄打開當(dāng)前文件的目錄
enter 在當(dāng)前窗口打開文件
o 打開一個水平分隔的窗口顯示文件
v 打開一個垂直分隔的窗口顯示文件
t 在一個新標(biāo)簽頁中打開文件
:cd dirtory 切換到dirtory目錄
:pwd 顯示當(dāng)前工作目錄
:tabnew file.txt 在新選項卡中打開 file.txt
:tabs 顯示所有 tabs
{count}gt 轉(zhuǎn)到標(biāo)簽頁 {count}。 第一個標(biāo)簽頁為數(shù)字 1
:tabclose 關(guān)閉當(dāng)前標(biāo)簽
gt
:tabn[ext] 轉(zhuǎn)到下一個選項卡
gT
:tabp[revious] 轉(zhuǎn)到上一個選項卡
屏幕移動
<ctrl+y> 將屏幕上移一行
<ctrl+e> 將屏幕下移一行
<ctrl+u> 將屏幕上移半頁
<ctrl+d> 將屏幕下移半頁
<Page UP> 將屏幕上移一頁
<ctrl+b> 和上面一樣
<Page Down> 將屏幕下移一頁
<ctrl+f> 和上面一樣
zz 將當(dāng)前行移到屏幕中間
zt 將當(dāng)前行移到屏幕頂部
zb 將當(dāng)前行移到屏幕底部