vim是一個(gè)Unix文本編輯器,它以快速高效而聞名,是在終端中運(yùn)行的小應(yīng)用程序(當(dāng)然也有圖形界面),它最主要的特點(diǎn)是完全可以通過鍵盤控制,而不需要菜單欄或鼠標(biāo)。
:h[elp] 關(guān)鍵字 - 打開關(guān)鍵字幫助
:sav[eas] 文件名 - 另存為
:clo[se] - 關(guān)閉當(dāng)前窗口
:ter[minal] - 打開一個(gè)shell窗口
K - 打開光標(biāo)所在單詞的man頁面
h - 左移光標(biāo)
j - 下移光標(biāo)
k - 上移光標(biāo)
l - 右移光標(biāo)
H - 移動(dòng)到當(dāng)前頁面頂部
M - 移動(dòng)到當(dāng)前頁面中間
L - 移動(dòng)到當(dāng)前頁面底部
w - 移動(dòng)到下個(gè)單詞開頭
W - 移動(dòng)到下個(gè)單詞開頭(單詞含標(biāo)點(diǎn))
e - 移動(dòng)到下個(gè)單詞結(jié)尾
E - 移動(dòng)到下個(gè)單詞結(jié)尾(單詞含標(biāo)點(diǎn))
b - 移動(dòng)到上個(gè)單詞開頭
B - 移動(dòng)到上個(gè)單詞開頭(單詞含標(biāo)點(diǎn))
ge - 移動(dòng)到上個(gè)單詞結(jié)尾
gE - 移動(dòng)到上個(gè)單詞結(jié)尾(單詞含標(biāo)點(diǎn))
% - 跳轉(zhuǎn)到配對(duì)的符號(hào)(默認(rèn)支持的配對(duì)符號(hào)組:: '()', '{}', '[]' - 在vim中使用 :h matchpairs 獲得更多信息)
0 - 移動(dòng)到行首
^ - 移動(dòng)到行首的非空白符
$ - 移動(dòng)到行尾
g_ - 移動(dòng)到行內(nèi)最后一個(gè)非空白符
gg - 移動(dòng)到文件第一行
G - 移動(dòng)到文件最后一行
5gg or 5G - 移動(dòng)到第五行
gd - 跳轉(zhuǎn)到局部定義
gD - 跳轉(zhuǎn)到全局定義
fx - 移動(dòng)到字符 x 下次出現(xiàn)的位置
tx - 移動(dòng)到字符 x 下次出現(xiàn)的位置的前一個(gè)字符
Fx - 移動(dòng)到字符 x 上次出現(xiàn)的位置
Tx - 移動(dòng)到字符 x 上次出現(xiàn)的位置的后一個(gè)字符
; - 重復(fù)之前的f、t、F、T操作
, - 反向重復(fù)之前的f、t、F、T操作
} - 移動(dòng)到下一個(gè)段落 (當(dāng)編輯代碼時(shí)則為函數(shù)/代碼塊)
{ - 移動(dòng)到上一個(gè)段落 (當(dāng)編輯代碼時(shí)則為函數(shù)/代碼塊)
zz - 移動(dòng)屏幕使光標(biāo)居中
Ctrl e - 向下移動(dòng)屏幕一行(保持光標(biāo)不動(dòng))
Ctrl y - 向上移動(dòng)屏幕一行(保持光標(biāo)不動(dòng))
Ctrl b - 向上滾動(dòng)一屏
Ctrl f - 向下滾動(dòng)一屏
Ctrl d - 向下滾動(dòng)半屏
Ctrl u - 向上滾動(dòng)半屏
i - 從光標(biāo)前開始插入字符
I - 從行首開始插入字符
a - 從光標(biāo)后開始插入字符
A - 從行尾開始插入字符
o - 在當(dāng)前行之下另起一行, 開始插入字符
O - 在當(dāng)前行之上另起一行, 開始插入字符
ea - 從當(dāng)前單詞末尾開始插入
Ctrl h - 在插入模式下,刪除光標(biāo)前的字符
Ctrl w - 在插入模式下,刪除光標(biāo)前的單詞
Ctrl j - 在插入模式下,另起一行
Ctrl t - 在插入模式下,向右縮進(jìn),寬度由 shiftwidth 控制
Ctrl d - 在插入模式下,向左縮進(jìn),寬度由 shiftwidth 控制
Ctrl n - 在插入模式下,在光標(biāo)之前插入自動(dòng)補(bǔ)全的下一個(gè)匹配項(xiàng)
Ctrl p - 在插入模式下,在光標(biāo)之前插入自動(dòng)補(bǔ)全的上一個(gè)匹配項(xiàng)
Ctrl rx - 插入寄存器 x 的內(nèi)容
Ctrl ox - 暫時(shí)進(jìn)入正常模式以發(fā)出一個(gè)正常模式命令 x。
Esc - 退出插入模式
r - 替換當(dāng)前字符
R - 在 ESC 按下之前,替換多個(gè)字符
J - 將下一行合并到當(dāng)前行, 并在兩部分文本之間插入一個(gè)空格
gJ - 將下一行合并到當(dāng)前行, 兩部分文本之間不含空格
gwip - 重新調(diào)整段落
g~ - switch case up to motion
gu - 小寫操作修飾符
gU - 大寫操作修飾符
cc - 將光標(biāo)所在的行刪除, 然后進(jìn)入插入模式
C - 將光標(biāo)處到行尾刪除, 然后進(jìn)入插入模式
c$ - 將光標(biāo)處到行尾刪除, 然后進(jìn)入插入模式
ciw - 將光標(biāo)所在的單詞刪除, 然后進(jìn)入插入模式
cw or ce - 從光標(biāo)位置開始, 修改單詞
s - 刪除當(dāng)前字符, 然后進(jìn)入插入模式
S - 清空當(dāng)前行, 然后進(jìn)入插入模式 (同cc)
xp - 當(dāng)前字符后移
u - 撤銷
U - 撤銷上一次的改動(dòng)行的操作
Ctrl r - 重做(取消撤銷)
. - 再次執(zhí)行上個(gè)命令
v - 進(jìn)入可視化模式, 移動(dòng)光標(biāo)高亮選擇, 然后可以對(duì)選擇的文本執(zhí)行命令
V - 進(jìn)入可視化模式(行粒度選擇)
o - 切換光標(biāo)到選擇區(qū)開頭/結(jié)尾
Ctrl v - 進(jìn)入可視化模式(矩陣選擇)
O - 切換光標(biāo)到選擇區(qū)的角
aw - 選擇當(dāng)前單詞
ab - 選擇被 () 包裹的區(qū)域(含括號(hào))
aB - 選擇被 {} 包裹的區(qū)域(含花括號(hào))
at - 選擇被 <> 標(biāo)簽包裹的區(qū)域(含<>標(biāo)簽)
ib - 選擇被 () 包裹的區(qū)域(不含括號(hào))
iB - 選擇被 {} 包裹的區(qū)域(不含花括號(hào))
it - 選擇被 <> 標(biāo)簽包裹的區(qū)域(不含<>標(biāo)簽)
Esc - 退出可視化模式
> - 向右縮進(jìn)
< - 向左縮進(jìn)
y - 復(fù)制
d - 剪切
~ - 大小寫切換
u - 將選中文本轉(zhuǎn)換為小寫
U - 將選中文本轉(zhuǎn)換為大寫
yy - 復(fù)制當(dāng)前行
2yy - 復(fù)制 2 行
yw - 復(fù)制當(dāng)前單詞
yiw - 復(fù)制光標(biāo)處的單詞
yaw - 復(fù)制光標(biāo)處的單詞及其前后的空格
y$ - 復(fù)制, 從光標(biāo)位置到行末
p - 在光標(biāo)后粘貼
P - 在光標(biāo)前粘貼
dd - 剪切當(dāng)前行
2dd - 剪切 2 行
dw - 剪切當(dāng)前單詞
diw - 刪除光標(biāo)處的單詞
daw - 刪除光標(biāo)處的單詞及其前后的空格
D - 剪切, 從光標(biāo)位置到行末
d$ - 剪切, 從光標(biāo)位置到行末 (同<kbd>D</kbd>)
x - 剪切當(dāng)前字符
>> - 將當(dāng)前行向右縮進(jìn),寬度由 shiftwidth 控制
<< - 將當(dāng)前行向左縮進(jìn),寬度由 shiftwidth 控制
>% - 向右縮進(jìn) () 或 {} 內(nèi)的區(qū)域 (光標(biāo)需置于括號(hào)上)
>ib - 向右縮進(jìn) () 內(nèi)的區(qū)域
>at - 向右縮進(jìn) <> 標(biāo)簽內(nèi)的區(qū)域
3== - 自動(dòng)縮進(jìn) 3 行
=% - 自動(dòng)縮進(jìn) () 或 {} 內(nèi)的區(qū)域 (光標(biāo)需置于括號(hào)上)
=iB - 自動(dòng)縮進(jìn) {} 內(nèi)的區(qū)域 (光標(biāo)需置于括號(hào)上)
gg=G - 自動(dòng)縮進(jìn)整個(gè)緩沖區(qū)
]p - 粘貼并調(diào)整縮進(jìn)至當(dāng)前行
:w - 保存
:w !sudo tee % - 使用 sudo 保存當(dāng)前文件
:wq or :x or ZZ - 保存并退出
:q - 退出(修改未保存時(shí)警告)
:q! or ZQ - 不保存強(qiáng)制退出
:wqa - 保存所有標(biāo)簽頁并全部退出
/pattern - 查找<kbd>pattern</kbd>
?pattern - 向上查找<kbd>pattern</kbd>
n - 查找下一個(gè)
N - 查找上一個(gè)
:%s/old/new/g - 替換全部
:%s/old/new/gc - (逐個(gè))替換
:noh[lsearch] - 移除搜索結(jié)果的高亮顯示
:vim[grep] /pattern/{`{file}`} - 在多個(gè)文件中搜索 <kbd>pattern</kbd>
:cn[ext] - 移動(dòng)至下一個(gè)
:cp[revious] - 移動(dòng)至上一個(gè)
:cope[n] - 打開搜索結(jié)果列表
:tabnew or :tabnew {page.words.file} - 在新標(biāo)簽中打開文件
Ctrl wT - 將窗口變成標(biāo)簽
gt or :tabn[ext] - 切換到下一個(gè)標(biāo)簽
gT or :tabp[revious] - 切換到上一個(gè)標(biāo)簽
#gt - 切換到第<kbd>#</kbd> 個(gè)標(biāo)簽
:tabm[ove] # - 移動(dòng)標(biāo)簽到第<kbd>#</kbd> 位(下標(biāo)從 0 開始)
:tabc[lose] - 關(guān)閉當(dāng)前標(biāo)簽
:tabo[nly] - 關(guān)閉其他標(biāo)簽
:tabdo command - 在所有標(biāo)簽中執(zhí)行命令
:e[dit] 文件名 - 新建緩沖區(qū)打開 filename
:bn[ext] - 切換到下個(gè)緩沖區(qū)
:bp[revious] - 切換到上個(gè)緩沖區(qū)
:bd[elete] - 關(guān)閉緩沖區(qū)
:ls or :buffers - 列出所有打開的緩沖區(qū)
:sp[lit] 文件名 - 新建緩沖區(qū)打開 filename 并水平分割窗口
:vs[plit] 文件名 - 新緩沖區(qū)打開 filename 并垂直分割窗口
:vert[ical] ba[ll] - edit all buffers as vertical windows
:tab ba[ll] - edit all buffers as tabs
Ctrl ws - 水平分割窗口
Ctrl wv - 垂直分割窗口
Ctrl ww - 在窗口間切換
Ctrl wq - 關(guān)閉窗口
Ctrl wx - 將窗口切換到下一個(gè)窗口
Ctrl w= - 使所有窗口的高度和寬度相等
Ctrl wh - 切換到左側(cè)窗口
Ctrl wl - 切換到右側(cè)窗口
Ctrl wj - 切換到下側(cè)窗口
Ctrl wk - 切換到上側(cè)窗口
Ctrl wH - 使游標(biāo)所在視窗全高并移至最左 (最左垂直視窗)
Ctrl wL - 使游標(biāo)所在視窗全高并移至最右 (最右垂直視窗)
Ctrl wJ - 使游標(biāo)所在視窗全寬并移至最下 (最下水平視窗)
Ctrl wK - 使游標(biāo)所在視窗全寬并移至最上 (最上水平視窗)
聯(lián)系客服