1 智能提示
Intellij首當其沖的當然就是Intelligence智能!基本的代碼提示用Ctrl+Space,還有更智能地按類型信息提示Ctrl+Shift+Space,但因為Intellij總是隨着我們敲擊而自動提示,所以很多時候都不會手動敲這兩個快捷鍵(除非提示框消失了)。用F2/ Shift+F2移動到有錯誤的代碼,Alt+Enter快速修復(即Eclipse中的Quick Fix功能)。當智能提示為我們自動補全方法名時,我們通常要自己補上行尾的反括號和分號,當括號嵌套很多層時會很麻煩,這時我們只需敲Ctrl+Shift+Enter就能自動補全末尾的字符。而且不只是括號,例如敲完if/for時也可以自動補上{}花括號。
最后要說一點,Intellij能夠智能感知Spring、Hibernate等主流框架的配置文件和類,以靜制動,在看似“靜態”的外表下,智能地掃描理解你的項目是如何構造和配置的。
2 重構
Intellij重構是另一完爆Eclipse的功能,其智能程度令人瞠目結舌,比如提取變量時自動檢查到所有匹配同時提取成一個變量等。尤其看過《重構-改善既有代碼設計》之后,有了Intellij的配合簡直是令人大呼過癮!也正是強大的智能和重構功能,使Intellij下的TDD開發非常順暢。
切入正題,先說一個無敵的重構功能大匯總快捷鍵Ctrl+Shift+Alt+T,叫做Refactor This。按法有點復雜,但也符合Intellij的風格,很多快捷鍵都要雙手完成,而不像Eclipse不少最有用的快捷鍵可以瀟灑地單手完成(不知道算不算Eclipse的一大優點),但各位用過Emacs的話就會覺得也沒什么了(非Emacs黑)。此外,還有些最常用的重構技巧,因為太常用了,若每次都在Refactor This菜單里選的話效率有些低。比如Shift+F6直接就是改名,Ctrl+Alt+V則是提取變量。
3 代碼生成
這一點類似Eclipse,雖不是獨到之處,但因為日常使用頻率極高,所以還是羅列在榜單前面。常用的有fori/sout/psvm+Tab即可生成循環、System.out、main方法等boilerplate樣板代碼,用Ctrl+J可以查看所有模板。后面“輔助”一節中將會講到Alt+Insert,在編輯窗口中點擊可以生成構造函數、toString、getter/setter、重寫父類方法等。這兩個技巧實在太常用了,幾乎每天都要生成一堆main、System.out和getter/setter。
另外,Intellij IDEA 13中加入了后綴自動補全功能(Postfix Completion),比模板生成更加靈活和強大。例如要輸入for(User user : users)只需輸入user.for+Tab。再比如,要輸入Date birthday = user.getBirthday();只需輸入user.getBirthday().var+Tab即可。
4 編輯
編輯中不得不說的一大神鍵就是能夠自動按語法選中代碼的Ctrl+W以及反向的Ctrl+Shift+W了。此外,Ctrl+Left/Right移動光標到前/后單詞,Ctrl+[/]移動到前/后代碼塊,這些類Vim風格的光標移動也是一大亮點。以上Ctrl+Left/Right/[]加上Shift的話就能選中跳躍范圍內的代碼。Alt+Forward/Backward移動到前/后方法。還有些非常普通的像Ctrl+Y刪除行、Ctrl+D復制行、Ctrl+</>折疊代碼就不多說了。
關於光標移動再多擴展一點,除了Intellij本身已提供的功能外,我們還可以安裝ideaVim或者emacsIDEAs享受到Vim的快速移動和Emacs的AceJump功能(超爽!)。另外,Intellij的書簽功能也是不錯的,用Ctrl+Shift+Num定義1-10書簽(再次按這組快捷鍵則是刪除書簽),然后通過Ctrl+Num跳轉。這避免了多次使用前/下一編輯位置Ctrl+Left/Right來回跳轉的麻煩,而且此快捷鍵默認與Windows熱鍵沖突(默認多了Alt,與Windows改變顯示器顯示方向沖突,一不小心顯示器就變成倒着顯式的了,冏啊)。
5 查找打開
類似Eclipse,Intellij的Ctrl+N/Ctrl+Shift+N可以打開類或資源,但Intellij更加智能一些,我們輸入的任何字符都將看作模糊匹配,省卻了Eclipse中還有輸入*的麻煩。最新版本的IDEA還加入了Search Everywhere功能,只需按Shift+Shift即可在一個彈出框中搜索任何東西,包括類、資源、配置項、方法等等。
類的繼承關系則可用Ctrl+H打開類層次窗口,在繼承層次上跳轉則用Ctrl+B/Ctrl+Alt+B分別對應父類或父方法定義和子類或子方法實現,查看當前類的所有方法用Ctrl+F12。
要找類或方法的使用也很簡單,Alt+F7。要查找文本的出現位置就用Ctrl+F/Ctrl+Shift+F在當前窗口或全工程中查找,再配合F3/Shift+F3前后移動到下一匹配處。
Intellij更加智能的又一佐證是在任意菜單或顯示窗口,都可以直接輸入你要找的單詞,Intellij就會自動為你過濾。
6 其他輔助
以上這些神鍵配上一些輔助快捷鍵,即可讓你的雙手90%以上的時間擺脫鼠標,專注於鍵盤仿佛在進行鋼琴表演。這些不起眼卻是至關重要的最后一塊拼圖有:
Ø 命令:Ctrl+Shift+A可以查找所有Intellij的命令,並且每個命令后面還有其快捷鍵。所以它不僅是一大神鍵,也是查找學習快捷鍵的工具。
Ø 新建:Alt+Insert可以新建類、方法等任何東西。
Ø 格式化代碼:格式化import列表Ctrl+Alt+O,格式化代碼Ctrl+Alt+L。
Ø 切換窗口:Alt+Num,常用的有1-項目結構,3-搜索結果,4/5-運行調試。Ctrl+Tab切換標簽頁,Ctrl+E/Ctrl+Shift+E打開最近打開過的或編輯過的文件。
Ø 單元測試:Ctrl+Alt+T創建單元測試用例。
Ø 運行:Alt+Shift+F10運行程序,Shift+F9啟動調試,Ctrl+F2停止。
Ø 調試:F7/F8/F9分別對應Step into,Step over,Continue。
此外還有些我自定義的,例如水平分屏Ctrl+|等,和一些神奇的小功能Ctrl+Shift+V粘貼很早以前拷貝過的,Alt+Shift+Insert進入到列模式進行按列選中。
7 最終榜單
這榜單陣容太豪華了,后幾名都是如此有用,毫不示弱。
Ø Top #10切來切去:Ctrl+Tab
Ø Top #9選你所想:Ctrl+W
Ø Top #8代碼生成:Template/Postfix +Tab
Ø Top #7發號施令:Ctrl+Shift+A
Ø Top #6無處藏身:Shift+Shift
Ø Top #5自動完成:Ctrl+Shift+Enter
Ø Top #4創造萬物:Alt+Insert
太難割舍,前三名並列吧!
Ø Top #1智能補全:Ctrl+Shift+Space
Ø Top #1自我修復:Alt+Enter
Ø Top #1重構一切:Ctrl+Shift+Alt+T
一.找文件找代碼找引用相關
1.雙擊shift
在項目的所有目錄查找,就是你想看到你不想看到的和你沒想過你能看到的都給你找出來
2.ctrl+f
當前文件查找特定內容
3.ctrl+shift+f
當前項目查找包含特定內容的文件
4.ctrl+n
查找類
5.ctrl+shift+n
查找文件
6.ctrl+e
最近的文件
7.alt+F7
非常非常頻繁使用的一個快捷鍵,可以幫你找到你的函數或者變量或者類的所有引用到的地方
二.編輯相關
1.shift+enter
另起一行
2.ctrl+r
當前文件替換特定內容
3.ctrl+shift+r
當前項目替換特定內容
4.shift+F6
非常非常省心省力的一個快捷鍵,可以重命名你的類、方法、變量等等,而且這個重命名甚至可以選擇替換掉注釋中的內容
5.ctrl+d
復制當前行到下一行
6.ctrl+x
剪切當前行
7.ctrl+c \ ctrl+v
大家都懂的
8.ctrl+z
撤銷
9.ctrl+shift+z
取消撤銷
10.ctrl+k
提交代碼到SVN
11.ctrl+t
更新代碼
12.alt+insert
非常非常以及相當方便的一個組合鍵,不信您往下看
在類中使用:
可以自動生成構造器、getter/setter等等常用方法
在項目目錄上使用:
可用於新建各種文件。
13.alt+enter
又是一個大殺器,有多殺?
例1:
發現代碼很“黃”怎么辦?
鼠標移上去喵一下:
試試alt+enter:
選擇simplify看看
我勒個去,代碼簡潔了有木有啊!
PS:黃色警告編譯可以通過,不影響程序的正常運行,一般都是一些對於代碼優化的建議,我遇到過的有:
(1).can be simplify
代碼可以簡化
(2).Variable is never use
聲明的變量從未被使用
(3)unnecessary boxing
不必要的聲明包裝
以及等等等,多留意下,對於編碼的某些細節能夠更了解。
例2:
寫個類實現某個接口,加上 implements Runnable 后你就會發現這條紅色的波浪線:![]()
咱試試在這行上來個 alt+enter:
感動地哭了有木有?你想到的沒想到的IDEA都幫你想到了。
看到代碼里提示的各種紅XX,就試試alt+enter吧!什么未拋異常啊沒有try catch啊都能搞得定。
14.ctrl+alt+L
自動格式化代碼,我已經養成了寫完代碼就來一發的習慣。
你可以個性化設置你自己的代碼風格:File--Settings--CodeStyle
