我的主力博客:半畝方塘
1、 在光標(biāo)所在行查找字符在普通模式下用 f{char}
命令,光標(biāo)會(huì)移動(dòng)到該字符所在的位置,向下重復(fù)查找在普通模式下用 ;
,向上回退查找用 ,
2、 在光標(biāo)所在行查找與替換在普通模式下用 :s/target/replacement
,其中 target
和 replacement 分別用被替換的字符或字符串和替換的字符或字符串代替,重復(fù)在普通模式下用 &
命令,回退在普通模式下用 u
手動(dòng)控制每一次替換在普通模式下用 :%s/target/replacement/gc
,這樣的話 Vim
會(huì)在每一次出現(xiàn)替換的地方詢問(wèn)是否替換,有以下幾種選項(xiàng):
y
: 替換此處匹配
n
: 忽略此處匹配
a
: "all" ―― 替換此處與之后所有的匹配
l
: "last" ―― 替換此處匹配后退出
q
: 退出替換過(guò)程
<C-e>
: 向上滾動(dòng)屏幕
<C-y>
: 向下滾動(dòng)屏幕
3、 查找當(dāng)前光標(biāo)下的單詞在普通模式下用 *
4、 一鍵移動(dòng),另一鍵修改 ―― .
范式
5、 寫(xiě)代碼思維停頓時(shí)請(qǐng)回到 普通模式,把思維單元切成 塊,這樣方便犯了錯(cuò)誤在普通模式下按 u
回退操作的時(shí)候能接上之前的思路接著修改,在適當(dāng)?shù)臅r(shí)候,換行操作采用 <Esc>o
,這樣會(huì)使撤銷時(shí)有更小的粒度,有利于編碼操作
6、 在普通模式下按 db
,反向刪除從光標(biāo)起始位置到單詞開(kāi)頭的內(nèi)容,但會(huì)原封未動(dòng)地留下最后一個(gè)字符
7、 在普通模式下按 b
,會(huì)將光標(biāo)移動(dòng)到單詞的開(kāi)頭
8、 在普通模式下按 daw
,即 "delete a word",刪除一個(gè)單詞
9、 在普通模式下 <C-a>
和 <C-x>
分別對(duì)數(shù)字執(zhí)行加和減操作,在不帶次數(shù)執(zhí)行時(shí),它們會(huì)逐個(gè)加減,但如果帶一個(gè)次數(shù)前綴,那么就可以用它們加減任意整數(shù),例如我們把光標(biāo)移動(dòng)到數(shù)字
5 上,執(zhí)行 10<C-a>
就會(huì)把它變成 15,如果光標(biāo)不在數(shù)字上,那么 <C-a>
和 <C-x>
會(huì)在當(dāng)前行正向查找一個(gè)數(shù)字,如果找到了,它就徑直跳到那里
10、 在普通模式下按 yyp
會(huì)復(fù)制當(dāng)前行并粘貼到下一行
11、 在普通模式下加上次數(shù)表示重復(fù),例如 2dw
或 d2w
都表示要?jiǎng)h除兩個(gè)單詞,2u
表示回退兩步等等,但是最好只在必要時(shí)使用次數(shù)
12、 在普通模式下按 dl
刪除當(dāng)前光標(biāo)下的單詞,但不進(jìn)入插入模式,按 dap
刪除整個(gè)段落
13、 在 Vim 中,操作符 + 動(dòng)作命令 = 操作,當(dāng)一個(gè)操作符被連續(xù)調(diào)用兩次時(shí),它會(huì)作用于當(dāng)前行,例如: dd
刪除當(dāng)前行,>>
縮進(jìn)當(dāng)前行,但是 gU
命令是一個(gè)特殊情況,既可以用 gUgU
,也可以用簡(jiǎn)化版本的 gUU
來(lái)使它作用于當(dāng)前行,常用的操作符命令如下:
c
: 修改
d
: 刪除
y
: 復(fù)制到寄存器
g~
: 反轉(zhuǎn)大小寫(xiě)
gu
: 轉(zhuǎn)換為小寫(xiě)
gU
: 轉(zhuǎn)換為大寫(xiě)
>
: 增加縮進(jìn)
<
: 減小縮進(jìn)
=
: 自動(dòng)縮進(jìn)
!
: 使用外部程序過(guò)濾{motion}所跨越的行