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
- 複製貼上上一行的字元