當前位置:編程學習大全網 - 編程語言 - 如何成為 IntelliJ IDEA 鍵盤流

如何成為 IntelliJ IDEA 鍵盤流

1. IdeaVim 插件

Intellj的Vim模擬是我所用過的IDE中最接近完美的了,不用實在可惜。從完全不會Vim到基本可以使用Vim鍵位來進行日常開發也就兩三個星期的事。好處也很多,首先Vim的操作方式速度確實很快,其次可以解放出大量ctrl和復合鍵位來做其他用途(這壹點emacs的鍵位模擬就做不到,還會經常和IDE本身的熱鍵沖突),再者現在大部分主流編輯器或IDE都有Vim模擬器,使用壹套鍵位在各種環境下都能進行常用的操作。

2. emacsIDEAs插件

不要被名字唬住了,其實這個插件跟emacs關系不大,只是實現了emacs裏的AceJump功能(但個人感覺比另壹個AceJump插件好用)。如果妳看插件的說明的話,它還圍繞AceJump實現了壹些其他功能,但已經有了IdeaVim的話這些就沒必要用了,只使用它的AceJump就行了。

所謂AceJump,就是妳按快捷鍵進入AceJump模式後(默認是Ctrl+J),再按任壹個字符,插件就會在屏幕中這個字符的所有出現位置都打上標簽,妳只要再按壹下標簽的字符,就能把光標移到該位置上。換言之,妳要移動光標時,眼睛壹直看著目標位置就行了,根本不用管光標的當前位置,非常舒服。

3. Shortcut Translator插件

如果妳是從其他IDE(比如Eclipse)轉過來的,可以用這個插件查詢在其他IDE中某個熱鍵所對應的IDEA熱鍵。

4. 善用Select Word at Caret功能(Ctrl+w)

在IDEA的Keymap中有Select Word at Caret這個動作,字面意思是“選中光標所在的單詞” ( 2015/07/22 更新:在14版中已改名為 Extend Selection ),默認快捷鍵是Ctrl+W。但事實上,這個動作的實際操作是選中更上壹層的語法結構。例如,如果妳在壹個字符串的壹個單詞中,按壹下Ctrl+W,會選中光標所在單詞。再按壹下,會選中整個字符串的內容,不包括引號。再按壹下,會選中包括引號的字符串。再按壹下,會選中整個表達式(如果表達式含有括號,會逐層選中)。再按壹下,會選中整個語句塊。再按壹下,會選中整個方法。再按壹下,會選中整個類。

如果沒有用IdeaVim,這個功能是非常強大的(完美替代鼠標雙擊和shift+右鍵選中)。如果使用了IdeaVim的話,用Vim自帶的Text Object功能就能實現大部分選擇語法結構場景。但有壹些Text Object在IdeaVim中沒有實現,比如說選中花括號(非block)中的內容( vi{ ),或者選中xml標簽之間的內容 ( vit )。這時用Ctrl+w也很方便。

5. 善用Postfix Completion

這是IDEA 13.1 新增的功能。詳細演示和說明看這裏 Postfix Code Completion in IntelliJ IDEA 13.1 EAP 。簡單來說就是妳可以先輸入語句的主體(例如要賦值的表達式,或者要循環的集合變量),然後輸入用小數點分隔的模板名稱後綴,IDE自動幫妳智能展開。

比如說,妳想寫

for (User user:users) { ... }

只需要輸入 users.for 再按tab就行了

妳想寫

Date birthday = user.getBirthday()

只需要輸入 user.getBirthday().var 再按tab就行了。IDEA會自動推斷賦值類型和生成默認的變量名稱。

========================

2016-1-31更新

僅針對Mac用戶,補充壹條增加快捷鍵的方案,全系統有效。個人覺得效率非常高。

Mac(OS X)有哪些冷門但是壹但發現就無法自拔的軟件? - 知乎用戶的回答

這套方案的好處是:

1. 增加了490多個與常用快捷鍵不沖突的快捷鍵組合(如果需要可以自己增加至700個),供重定義。換而言之,妳不需要改動本來的快捷鍵布局,同事來妳的機器上協助編程時不會找不著北。

2. 絕大部分新增的快捷鍵都在基鍵上,且減少了對功能鍵的需要,極大提高小尾指的幸福感。

3. 絕大部分快捷鍵組合帶有方向和輕中重的含義,便於記憶。

4. 可針對不同應用定義不同的方案。

唯壹壞處是,Keyboard Maestro這個軟件要36美刀,不過在Mac下玩鍵盤流我個人覺得這必不可少,至少目前沒有找到好的替代品。

(關於Keyboard Maestro的在Intellij外的應用方案可以參考我這個回答:Mac 下有什麽軟件能夠極大地提高工作效率? - 知乎用戶的回答 )

以下是壹些我自己在Intellij中的快捷組合設定,供參考

1. 全局定義 (在Intellij外也才有此設定)

(dio)或ctrl-j : 光標下移 (括號括起的按鍵組合指先按下第壹個鍵,然後後兩個鍵同時按下或在200微秒內先後按下。像這裏就是先按下d然後io齊按。)

(eio)或ctrl-k:光標上移

(fio):光標右移

(sio):光標左移

此外,引用答案中的配置文件本來就配置了以下解放小尾指的全局配置:

[jk]: ESC (方括號括起的按鍵組合指同時按下括號內的鍵,這裏指jk壹起按下就是ESC)

[jl]:回車

[jh]:delete (Mac裏面相當於Backspace)

[jf]:TAB

2. (df+動作鍵),(ds+動作鍵),(fd+動作鍵) 組合為輸入常用關鍵字 (是的我就是這麽懶,按頭幾個字母再按壹下TAB都覺得煩。。。)

(dfj):private

(dfk):protected

(dfl):public

(dfu):void

(dfi):String

(dfo):Boolean

(dfh):final

(dfn):static

(dfm):@Inject

(dsj):return

(dsk):null

(dsl):.equals(

(dsu): .stream()

(dsi): .collect(Collectors.toList())

(dso): .collect(ArrayList::new, ArrayList::add, ArrayList::addAll)

(dsh): throw new

(dsm): this

3. 左手方向鍵 + 右手雙動作齊按 (前面已定義方向加io齊按為全局方向,這裏不再重復定義)

(dkl): 縮小選區到下壹級語法結構

(ekl): 擴大選區到上壹級語法結構 (就是前面說的Ctrl+w)

(dui): 光標移動至語法塊結尾

(eui): 光標移動至語法塊開頭

(fjk): 光標移動至行尾

(sjk): 光標移動至行首

(skl): 返回前壹歷史位置

(fkl): 前進到下壹歷史位置

3. 兩右手相反方向加壹動作

(sfj): Code complete (相當於option+/)

(fsj): Code complete反向滾動

(den): 移入上面的代碼窗口 (當使用了split分隔出多個代碼窗口時)

(edn): 移入下面的代碼窗口

(sfn): 移入右面的代碼窗口

(fsn): 移入左面的代碼窗口

(sfu): "0p (vim插件下的復制)

(sfi): viw"0p (vim插件下用復制內容替換當前光標所在單詞)

(deo): [Esc]gUiwgi (vim插件下,在插入模式中把光標所在單詞改大寫並在原來位置繼續插入)

4. sd+動作 代碼重構相關

(sdj) : Quick fix (映射到原來的option+enter)

(sdk) : Code generate (映射到原來的option+insert)

(sdl): 彈出重構菜單 (映射到原來的shift+ctrl+option+T)

5. se + 動作 打開代碼相關

(sej): 打開類 (相當於原來的ctrl+n)

(sek): 打開文件 (相當於原來的shift+ctrl+n)

(sel): 打開最後編輯過的文件列表

(seh): 打開動作輸入框(相當於原來的ctrl+shift+A)

(seh): 打開上壹個關閉的文件

  • 上一篇:論壇制作用什麽語言?
  • 下一篇:周大福2013校園招聘
  • copyright 2024編程學習大全網