標籤:

如何成為 IntelliJ IDEA 鍵盤流?


推薦個人常用的幾個鍵盤流的plugin和技巧:

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): 打開上一個關閉的文件

(時間關係先列這些,理解思路就好,真有人有興趣和需要的話再列出剩下的吧)


補充一點:

自己特別想要的功能, 可以寫plugin來實現。 所以後來我寫了emacsIDEAs。

JetBrains Plugin Repository :: emacsIDEAs


多看看tip of the days, 裡面有好多你之前想不到的好東西,看到好用的快捷鍵就記下來,然後就是。。。多練,多練,多練唄。。。想用滑鼠的時候就要逼著自己去用鍵盤。

如果有需要的話,也可以自己定義一些快捷鍵玩玩,盡量定義的快捷鍵名有意義。


謝邀

  1. 軟體菜單 [help]&>[default keymap reference] 是官方推薦的常用快捷鍵,都嘗試一遍

  2. 腦子裡切換到 IntelliJ IDEA頻道,即使之前用的是eclipse 也不要用eclipse的keymap,就用默認的,一旦接受了這個設定,還是覺得挺可愛的嘛

  3. 唯一需要改的是ctrl+space和win中文系統輸入法衝突 [code]&>[completion]&>[basic] 手動觸發提示,用處多多(不 只 是 語 法 提 示,娘的老覺得自動提示就是語法提示的人也太孤陋寡聞了)

  4. 安裝插件例如 Key Promoter ,這玩意兒會統計你用鍵盤操作了某功能幾次,對應的快捷鍵是啥,或者建議你給常用的功能綁定快捷鍵

  5. Github 上的參考文檔 damao/Intellij-IDEA-F2E · GitHub

記住那些用得到的快捷鍵,忘掉那些用不到的快捷鍵


首先想完全拋棄滑鼠或者觸摸板是不現實, 我覺得題主想要做到的是在進行代碼編輯的時候盡量不用滑鼠。所以說下我的方案:

1. Find Action

看了一下答案, 發現只有 @李先 一個人提到了Find Action這個功能。其實這個功能是Idea裡面最人性化的功能。

需要記超過20個以上的快捷鍵的方案都是反人類的。主要原因是因為快捷鍵跟功能毫無聯繫,大部分都只能死記。不是常用功能的快捷鍵很容易忘記。但是Action就不一樣,Action的名字基本就是功能的英文描述,沒有記憶的負擔,需要的時候完全是自然浮現。

比如"優化import"功能, 你只需要按Ctrl+shift-A喚醒Find Action欄,然後輸入opt後回車就好了。

還有像getter, setter, imple, test等都是十分好用的命令。

2. 選擇一套移動游標的方案。

這個就有很多種選擇了, 我用的是IdeaVim的插件。如果習慣Emacs就可以用C-P, C-N去移動。我同事用的筆記本鍵盤,用方向鍵配合home, end等按鈕也是很快的,這個習慣就好。3. 記住常用的跳轉的快捷鍵

記住幾個常見的跳轉Action的快捷鍵很有必要,當然忘記時候,也可以用Find Aciton。但是這幾個都是非常常用,很快就會形成肌肉記憶的。

  • Class... 跳轉到某個類

  • File... 跳轉到某個文件

  • File structure 可以跳轉到文件內的位置,比如某個方法

  • Declaration 跳轉到定義

  • Back 回到上次跳轉的位置

  • Forward Back的反操作

  • Search everywhere 跳轉到任意地方

最後把CapsLock跟Ctrl鍵換位,按鍵效率會大大提升。

4. 剩下的其他人都提到了, 熟練使用Live Template, Postfix Completion, Extend Selection等功能。


居然要做鍵盤流,那麼你就要掌握快捷鍵了!

windows linux mac不同系統的快捷鍵是不一樣的!

IntelliJ IDEA最新快捷鍵大全(Windows/Linux版)


使用 IDEA 的話,真正的高效並不是來自於鍵盤,而是來自於思維層次的提高。

  1. Action,IDEA 裡面的原子指令就是 Action,使用更高級的 Action,可以更加的高效的編碼。
  2. Help | Find Action,記住這個快捷鍵,對於 Action 來說,僅需要記住它的名字(即動作的英文表述),使用的時候可以搜索,不需要強迫自己使用快捷鍵。
  3. 初學者建議把 Help | Default Key Map Reference 過一遍,了解一下哪些是 Action,也許會發現自己以前做了很多無用操作。

熟悉更多的 Action 以後,不僅可以使用更少的動作完成更多的操作,對語言的理解也會更加的深刻。鍵盤流只是習慣問題,對效率影響其實不大。


什麼都別調, 就用jetbrain那幾個原生的鍵位綁定


去年從eclipse轉過來,媽的,太他媽好用了

之前用eclipse的時候基本就是鍵盤黨,不少常用功能的快捷鍵都是自定義的,主要集中在左手附近的按鍵,轉到idea之後也把常用的快捷鍵改成之前習慣了的,建議樓主嘗試自定義一些快捷鍵,熟練之後腦子跟不上手了

左手,愛死你了


(原答案已經修改)

主要是:

  1. 願意改變自己

  2. 周圍的人都是鍵盤流

我同事用的插件(Key Promoter),會有一些幫助,每次滑鼠流的時候,會像下面這樣蹦:


因為只要熟練使用快捷鍵才能提高開發效率

這裡整理了不少快捷鍵,希望對你有幫助:攻城獅快捷鍵


idea 快捷鍵,中英文, windows mac 對比,你值得擁有

IDEA快捷鍵windows mac對比


設成Emacs模式


推薦閱讀:

Android Studio有什麼奇技淫巧?
關於intellij下部署tomcat項目的問題?
你認為IntelliJ IDEA是最智能的IDE嗎?
Intellij IDEA用Swing開發,而eclipse是用IBM優化過的SWT/JFace開發,為什麼性能差這麼多?

TAG:IntelliJIDEA |