提升Android 開發速度系列(5) Vim
這篇可以說是提升Android開發速度系列裡最關鍵的一篇了,使用Vim可以讓你寫程式幾乎可以不使用滑鼠。
先來火力展示一下,這影片是上完91 VS極速開發的課後練習,使用vim練習Tennis kata。
安裝 Plugin
- Relative Line Numbers 。顯示相對行數
- IdeaVim。IntelliJ 的vim外掛。
安裝完後,從Tools->Vim Emulator 可開關Vim。剛開始使用,如果不熟悉要先關掉的話,可以從這裡開關。
基本操作 — 移動游標
j — 往下
K — 往上
h — 向左
l — 向右
w — 向右至字首
e — 向右至字尾
b — 向左至字首
W — 向右至字首(含符號)
B — 向左至字尾(含符號)
0 — 跳至行首
$ — 跳至行尾
組合
3j — 往下3行,Plugin:Relative Line Numbers,就是為了看出相對行數
3k — 往上3行
2w — 往右第二個單字的字首
數字代表重覆執行幾次
到這裡你已經可以透過以上Vim指令,而不用滑鼠將游標移到你想的地方了,是不是開始覺得Vim有點強。
Vim的三種模式
- Normal
- Insert
- Visual
剛剛操作的方式都是在Normal Mode,要打字的時候就需要切換到Insert Mode。再按ESC就可回到Normal Mode。
i — 在游標前開始插入字元。
a — 在游標後開始插入字元。
I — 在行首開始插入字元。
A — 在行尾開始插入字元。
o — 在該行之下另起一行,開始插入字元。
O — 在該行之上另起一行,開始插入字元。
組合應用
ea — 在該單字字尾開始插入字元(e是到單字字尾,a是在游標後編輯)
bi — 在單該字字首開始編輯(b是到單字字首,i是在游標前編輯)
cw — 從游標位置開始變更單字
ciw — 變更整個單字
cc — 變更整行
c$ — 從游標位置開始變更該行
s — 刪除游標後字元並進入插入模式
S — 刪除整行並進入插入模式
刪除(仍維持在Normal Mode)
dd — 刪除行
dw — 刪除單字
d3j — 往下刪3行
d3k — 往上刪3行
r — 變更游標的字
J — 將下一行合併至該行
gJ — 將下一行合併至該行,但保留下一行的前面的空白
搜尋
fa — 跳至字元 a 下次出現的位置
ta — 跳至字元 a 下次出現位置的上一個字元
Fa — 往前跳至字元 a 下次出現的位置
Ta — 往前跳至字元 a 下次出現位置的上一個字元
; 重覆上一個搜尋
組合
d2w — 刪除2個單字
c2w — 刪除2個單字後開始編輯
dfa — 刪除到下一個a出現的位置
dta — 刪除到下一個a出現的前一位置
cfa — 刪除到下一個a出現的位置,並開始編輯
cta — 刪除到下一個a出現的前一位置,並開始編輯
. — 重覆執行上個命令
Visual Mode
Visual mode 用來選取文字。
v — 進入Vision模式 (字元選取),按ESC回到編輯模式。
V — 進入Vision模式 (行選取),按ESC回到編輯模式。
w — 選取單字
在選取模式下
aw — 選取該單字
ab — 選取 () 及所包圍的區塊
aB — 選取 {} 及所包圍的區塊
ib — 選取 () 內的區塊
iB — 選取 {} 內的區塊
組合
fa 選取到下一個a
ta 選取到下一個a出現的前一位置
3j 選取到下3行
複制與貼上
yy — 複製該行
yw — 複製該單字
2yy — 複製 2 行
y$ — 複製游標位置到行尾的區塊
p — 在游標後貼上
P — 在游標前貼上
“0p — 貼上(複制後到其他地方刪除單字後貼上,因為剪下會讓vim的剪貼簿被蓋掉)
搜尋
/word — 尋找word
?word — 向上尋找 word
n — 尋找下一個
N — 尋找上一個
自訂Vim
新增 .ideavimrc放至home目錄下,在.ideavimrc裡自訂vim指令
nmap指的是Normal Mode,imap是Insert Mode,vmap是Visual Mode。
^及$這2個按鍵不是這麼容易按。把按鍵hh設定為執行^,ll設定為執行$。
nmap hh ^
nmap ll $
在Normal下,將zgc設定為簽入版控
nmap zgc :action CheckinProject<CR>
:action 後面為IDE 的action 名稱。要查有哪些Action可先按:在輸入actionlist即可看到所有的Action。
在Normal Mode、Visual Model 設定zrm為Extract Function
nmap zrm :action ExtractFunction<CR><Esc>
vmap zrm :action ExtractFunction<CR><Esc>
組合多個指令,設定zra為先重新整理程式碼後再執行測試。
imap zra <Esc>:action ReformatCode<CR>:action Run<CR>
nmap zra :action ReformatCode<CR>:action Run<CR>
完成編輯後,將.ideavimrc存檔,在Android Studio 按:輸入指令重新載入,即可生效。
source ~/.ideavimrc
以上就是Android Studio使用Vim的介紹,是不是也覺得vim很強大。在剛開始練習不用滑鼠使用一定會很不順,甚至你會覺得自已好像不會寫程式了,不斷的練習,撐過去之後,你的寫程式速度就會比別人快很多。再將你常用的功能加到ideavimrc,用一個指令串起來,開發速度就更快了。
Vim就初步介紹就到這裡了,強力推薦上91的極速開發課!
出版書:
Android TDD 測試驅動開發:從 UnitTest、TDD 到 DevOps 實踐
線上課程:
Android 動畫入門到進階
Android UI 進階實戰(Material Design Component)