提升Android 開發速度系列(5) Vim

Evan Chen
Evan Android Note
Published in
8 min readAug 26, 2018

這篇可以說是提升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 — 在該行之上另起一行,開始插入字元。

游標在n,按a 從n後面開始輸入

組合應用

ea — 在該單字字尾開始插入字元(e是到單字字尾,a是在游標後編輯)
bi — 在單該字字首開始編輯(b是到單字字首,i是在游標前編輯)

cw — 從游標位置開始變更單字
ciw — 變更整個單字
cc — 變更整行
c$ — 從游標位置開始變更該行
s — 刪除游標後字元並進入插入模式
S — 刪除整行並進入插入模式

CW

刪除(仍維持在Normal Mode)

dd — 刪除行
dw — 刪除單字
d3j — 往下刪3行
d3k — 往上刪3行

dw

r — 變更游標的字
J — 將下一行合併至該行
gJ — 將下一行合併至該行,但保留下一行的前面的空白

r

搜尋

fa — 跳至字元 a 下次出現的位置
ta — 跳至字元 a 下次出現位置的上一個字元
Fa — 往前跳至字元 a 下次出現的位置
Ta — 往前跳至字元 a 下次出現位置的上一個字元

; 重覆上一個搜尋

組合

d2w — 刪除2個單字
c2w — 刪除2個單字後開始編輯
dfa — 刪除到下一個a出現的位置
dta — 刪除到下一個a出現的前一位置
cfa — 刪除到下一個a出現的位置,並開始編輯
cta — 刪除到下一個a出現的前一位置,並開始編輯

. — 重覆執行上個命令

dw刪除單字,按.重覆上個命令

Visual Mode

Visual mode 用來選取文字。

v — 進入Vision模式 (字元選取),按ESC回到編輯模式。
V — 進入Vision模式 (行選取),按ESC回到編輯模式。

w — 選取單字

在選取模式下
aw — 選取該單字
ab — 選取 () 及所包圍的區塊
aB — 選取 {} 及所包圍的區塊
ib — 選取 () 內的區塊
iB — 選取 {} 內的區塊

按v進入選取模式,再按e選取至單字尾

組合

fa 選取到下一個a
ta 選取到下一個a出現的前一位置
3j 選取到下3行

V進入Visual Mode(行選取),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的極速開發課!

--

--