天天看點

改善程式設計體驗: IdeaVimExtension介紹改善程式設計體驗: IdeaVimExtension介紹

改善程式設計體驗: IdeaVimExtension介紹

動機

Intellij IDEA是個非常優秀的開發環境,提供了相當好用的快捷鍵,讓使用者有機會脫離滑鼠來使用IDE.

另外官方還提供了IdeaVim插件,熟悉vim的使用者可以使用幾乎與vim相同的方式操作IDEA的編輯器來編寫代碼.但是作為非英文使用者,卻有一個"輸入法切換"的痛點.

考慮如下兩種情況:

  1. 編輯器中在insert模式下,編寫了一段中文注釋,然後需要回到normal模式移動光标到其他位置繼續編寫代碼.
  2. 正在編輯器normal模式下操作,此時突然有緊急郵件或者釘釘消息需要回複,輸入法切換為中文回複後再回到編輯器.

類似上面兩種場景,當回到normal模式編輯器時,我們都不得不人工操作一次輸入法切換,即使您已經為輸入法切換設定了非常好用的快捷鍵(按一下Shift),這個操作依然是惱人的,經常會忘記,輸入幾個字元後才發現,這可能帶來誤操作.

我們的期望隻有一個:

在任何情況下,進入normal模式,輸入法必是英文狀态.

是以我基于IdeaVim的擴充點開發了一個幫助切換輸入法的小插件

IdeaVimExtension

IdeaVimExtension安裝使用

  1. 如果您已經是IdeaVim的使用者,那麼直接在Intellj IDEA的插件中心搜尋

    IdeaVimExtension

    進行安裝.或者到 插件首頁進行下載下傳安裝.
IdeaVimExtension是依賴IdeaVim的,需要事先安裝IdeaVim
  1. 確定你的作業系統已經開啟了英文輸入法
    • Windows需要開啟en_US
      改善程式設計體驗: IdeaVimExtension介紹改善程式設計體驗: IdeaVimExtension介紹
      輸入法
    • macOS需要開啟ABC
      改善程式設計體驗: IdeaVimExtension介紹改善程式設計體驗: IdeaVimExtension介紹
      或en_US
      改善程式設計體驗: IdeaVimExtension介紹改善程式設計體驗: IdeaVimExtension介紹
    • Linux 不支援
  2. 安裝重新開機IDEA後,打開任意代碼編輯器在normal模式下輸入如下兩個指令來激活IdeaVimExtension插件
    • :set keep-english-in-normal

      : 在normal模式保持英文狀态
    • :set keep-english-in-normal-and-restore-in-insert

      : 在normal模式保持英文狀态,并在回到insert時恢複輸入法到原來的狀态.例如,編寫一段中文注釋,用中文輸入法寫了一段文字,進入normal模式移動光标到下一行,再回到插入模式繼續使用中文編輯.
  3. 上面兩個指令在每次IDEA重新開機後都需要重新輸入,也可以通過在使用者目錄下添加

    .ideavimrc

    檔案,将指令添加到該檔案中,這樣在IDEA重新開機時可以自動執行該檔案中的指令.另外,該檔案中也可以添加其他 受支援的vim指令 .類似vim的

    .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來使用:

繼續閱讀