Useful Vi Tips
Essential Vi tips without using any plugins
General
- 如果覺得什麼事情很冗就去看 vi 能不能解決
- 熟悉 Vi 原生功能(例如 Motions)
- 幫助快速移動的 Motions (真的很讚,我大學開始用 vi 但研究所學會用 Motions 後我才真的感受到 vi 的強大)
- 搜尋時加入
\c
字元可以忽略後面字串的大小寫 V
(大寫)可以進入 VISUAL LINE modeControl+V
可以進入 VISUAL BLOCK mode
In VISUAL BLOCK Mode
- 選擇多行後可以利用
I
(大寫)一次插入相同內容到多行中(也可以利用其它字元進行其它操作)
In VISUAL * Mode
"*y
- 複製所選的文字進 clipboard
U
(大寫)/u
- 將所選文字轉成大寫/小寫
In NORMAL Mode
"*yy
- 複製目前這行的文字進 clipboard
I
/A
(大寫)- 將 cursor 移至行首/尾進入 INSERT mode
C
(大寫)- 刪除並複製目前 cursor 至行尾的文字然後進入 INSERT mode
D
/Y
(大寫)- 刪除/複製目前 cursor 至行尾的文字
yi
/di
/ci
+ pair (e.g.()
,{}
,""
)- 任一端可以將 pair 內的文字複製/刪除/刪除並進入 INSERT mode
ya
/da
/ca
+ pair (e.g.()
,{}
,""
)- 任一端可以將 pair 內的文字和 pair 本身複製/刪除/刪除並進入 INSERT mode
J
(大寫)- 把目前這行尾巴
\n
變成空格
- 把目前這行尾巴
S
(大寫)或cc
- 會把目前這行清空並在合適的 indentation level 進入 INSERT mode
- 在 NORMAL mode 按
o
後直接離開 INSERT mode 會失去indentation level,S
(大寫)或cc
可以在該 indentation level 下編輯
- 大括號
{
和}
- 跳到下一個空行
- 在 pair (e.g. (), , "") 的一端按下
%
- 跳到另一端
zz
- 將 cursor line 所在的這行在畫面中垂直置中
>>
/<<
- 調整 indent
~
- 交換大小寫
- 本來是大寫的變成小寫、本來是小寫的變成大寫
In INSERT Mode
- Control+o
- 暫時進入 NORMAL mode
- Control+y
- 複製貼上上一行的字元