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