如何成為 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]:TAB2. (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): this3. 左手方向鍵 + 右手雙動作齊按 (前面已定義方向加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, 裡面有好多你之前想不到的好東西,看到好用的快捷鍵就記下來,然後就是。。。多練,多練,多練唄。。。想用滑鼠的時候就要逼著自己去用鍵盤。
如果有需要的話,也可以自己定義一些快捷鍵玩玩,盡量定義的快捷鍵名有意義。謝邀
- 軟體菜單 [help]&>[default keymap reference] 是官方推薦的常用快捷鍵,都嘗試一遍
- 腦子裡切換到 IntelliJ IDEA頻道,即使之前用的是eclipse 也不要用eclipse的keymap,就用默認的,一旦接受了這個設定,還是覺得挺可愛的嘛
- 唯一需要改的是ctrl+space和win中文系統輸入法衝突 [code]&>[completion]&>[basic] 手動觸發提示,用處多多(不 只 是 語 法 提 示,娘的老覺得自動提示就是語法提示的人也太孤陋寡聞了)
- 安裝插件例如 Key Promoter ,這玩意兒會統計你用鍵盤操作了某功能幾次,對應的快捷鍵是啥,或者建議你給常用的功能綁定快捷鍵
- 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 的話,真正的高效並不是來自於鍵盤,而是來自於思維層次的提高。
- Action,IDEA 裡面的原子指令就是 Action,使用更高級的 Action,可以更加的高效的編碼。
- Help | Find Action,記住這個快捷鍵,對於 Action 來說,僅需要記住它的名字(即動作的英文表述),使用的時候可以搜索,不需要強迫自己使用快捷鍵。
- 初學者建議把 Help | Default Key Map Reference 過一遍,了解一下哪些是 Action,也許會發現自己以前做了很多無用操作。
熟悉更多的 Action 以後,不僅可以使用更少的動作完成更多的操作,對語言的理解也會更加的深刻。鍵盤流只是習慣問題,對效率影響其實不大。
什麼都別調, 就用jetbrain那幾個原生的鍵位綁定
去年從eclipse轉過來,媽的,太他媽好用了之前用eclipse的時候基本就是鍵盤黨,不少常用功能的快捷鍵都是自定義的,主要集中在左手附近的按鍵,轉到idea之後也把常用的快捷鍵改成之前習慣了的,建議樓主嘗試自定義一些快捷鍵,熟練之後腦子跟不上手了左手,愛死你了
(原答案已經修改)
主要是:- 願意改變自己
- 周圍的人都是鍵盤流
因為只要熟練使用快捷鍵才能提高開發效率
這裡整理了不少快捷鍵,希望對你有幫助:攻城獅快捷鍵idea 快捷鍵,中英文, windows mac 對比,你值得擁有
IDEA快捷鍵windows mac對比
設成Emacs模式
推薦閱讀:
※Android Studio有什麼奇技淫巧?
※關於intellij下部署tomcat項目的問題?
※你認為IntelliJ IDEA是最智能的IDE嗎?
※Intellij IDEA用Swing開發,而eclipse是用IBM優化過的SWT/JFace開發,為什麼性能差這麼多?
TAG:IntelliJIDEA |