改善程式設計體驗: IdeaVimExtension介紹
動機
Intellij IDEA是個非常優秀的開發環境,提供了相當好用的快捷鍵,讓使用者有機會脫離滑鼠來使用IDE.
另外官方還提供了IdeaVim插件,熟悉vim的使用者可以使用幾乎與vim相同的方式操作IDEA的編輯器來編寫代碼.但是作為非英文使用者,卻有一個"輸入法切換"的痛點.
考慮如下兩種情況:
- 編輯器中在insert模式下,編寫了一段中文注釋,然後需要回到normal模式移動光标到其他位置繼續編寫代碼.
- 正在編輯器normal模式下操作,此時突然有緊急郵件或者釘釘消息需要回複,輸入法切換為中文回複後再回到編輯器.
類似上面兩種場景,當回到normal模式編輯器時,我們都不得不人工操作一次輸入法切換,即使您已經為輸入法切換設定了非常好用的快捷鍵(按一下Shift),這個操作依然是惱人的,經常會忘記,輸入幾個字元後才發現,這可能帶來誤操作.
我們的期望隻有一個:
在任何情況下,進入normal模式,輸入法必是英文狀态.
是以我基于IdeaVim的擴充點開發了一個幫助切換輸入法的小插件
IdeaVimExtensionIdeaVimExtension安裝使用
IdeaVimExtension是依賴IdeaVim的,需要事先安裝IdeaVim
- 確定你的作業系統已經開啟了英文輸入法
- Windows需要開啟en_US 輸入法
- macOS需要開啟ABC 或en_US
- Linux 不支援
- 安裝重新開機IDEA後,打開任意代碼編輯器在normal模式下輸入如下兩個指令來激活IdeaVimExtension插件
-
: 在normal模式保持英文狀态:set keep-english-in-normal
-
: 在normal模式保持英文狀态,并在回到insert時恢複輸入法到原來的狀态.例如,編寫一段中文注釋,用中文輸入法寫了一段文字,進入normal模式移動光标到下一行,再回到插入模式繼續使用中文編輯.:set keep-english-in-normal-and-restore-in-insert
-
- 上面兩個指令在每次IDEA重新開機後都需要重新輸入,也可以通過在使用者目錄下添加
檔案,将指令添加到該檔案中,這樣在IDEA重新開機時可以自動執行該檔案中的指令.另外,該檔案中也可以添加其他 受支援的vim指令 .類似vim的.ideavimrc
檔案..vimrc
接下來就可以愉快的使用全鍵盤操作來編寫代碼了.
注意: 該插件僅支援macOS和Windows作業系統,不支援Linux.
如果有哪位同學可以提供Linux下切換輸入法的動态庫,我就可以支援了.
額外一點分享
相信很多同學都是使用蘋果電腦的.蘋果電腦的鍵盤設計對vim使用者越來越不友好了.對vim使用者來說
ESC
是個非常高頻的按鍵.但是蘋果鍵盤的
ESC
設計比較小,且位置偏遠,有bar的新MBP的
ESC
是虛拟的基本沒有任何按鍵回報.我的處理方法是使用
karabiner軟體将
ESC
和不常用的
~
進行交換.
另外鍵盤上的方向鍵,新MBP的上下被縮小到一個按鍵的面積偏小,且需要移動右手去按,對編寫代碼這樣的文字工作是不友好的在使用vim編輯器是可以通過
hkjl
來替換,但也總有非vim環境需要使用方向鍵,比如IDEA的Project視圖等.我的處理方法是設定
Ctrl+hkjl
來替換方向鍵,為了糾正習慣将原始的方向鍵禁用了.
最後
CapsLock
鍵用處不大,有時會誤按造成vim-normal模式下的誤操作,是以我将該鍵跟左下角的Ctrl交換了.這樣既改善了
Ctrl
的按鍵體驗,也可以避免誤按
CapsLock
Windows使用者請自行尋找鍵位映射工具.
在附件中提供我的kararbiner配置檔案,可以直接copy到~/.config/karabiner/karabiner.json來使用: