使用IntelliJ IDEA其實并不太久巩检,用了這段時間以后,覺得的確很是好用示启。剛剛從Eclipse轉過來的很多人開始可能不適應兢哭,我就把使用過程中的一些經驗和常用功能分享下,當然在看這篇之前推薦你先看完IntelliJ IDEA 的 20 個代碼自動完成的特性丑搔,這篇文章對自動完成的特性介紹的非常好厦瓢,只是快捷鍵說明部分還可以更完善一些,可以照顧下默認綁定鍵位不一致的童鞋啤月。本文在說明快捷鍵的時候是根據(jù)Mac OSX 10.5+的默認keymap,當然也會提供相關的文字說明劳跃,如果和我的綁定不一致的可以直接去keymap中搜索即可谎仲。
基本設置
顯示行號
這個以前在Eclipse中是個很簡單的問題,轉移到IntelliJ上以后的一些人也問過這個問題刨仑。使用同樣的方式設置了以后發(fā)現(xiàn)只是對當前文件起作用了郑诺,打開另外一個文件依然沒有行號。就好比你只是在vim中執(zhí)行命令set number
杉武,而不是在.vimrc中設置一樣的效果辙诞。這個是需要在IDE Settings中設置下的,如圖所示勾選即可:
其他設置可參照該設置項勾選即可轻抱,例如顯示空格等等.
文件和導航關聯(lián)
我們在寫代碼的時候經常需要打開某個文件的時候飞涂,想在左邊的文件樹上自動打開關聯(lián)到位置,這樣很方便的找尋本目錄下的其他文件或者其他的相關文件祈搜,其實這個IntelliJ提供了好幾種解決方案较店,第一個就是和Eclipse一樣的方式,如下:
-
以前在Eclipse中設置也很簡單容燕,但是IntelliJ里面稍微有點不一樣梁呈,如果想臨時一次的話,打開文件的時候點擊下圖的小地球(第一眼看的時候很像個小地球儀)圖標即可
image.png
如果你想和Eclipse的那個一樣蘸秘,讓這一切自動的話官卡,那么在上圖的浮層中可以看到兩個選項AutoScroll to Source
和AutoScroll from source
蝗茁,IntelliJ很人性化的分了兩個設置在里面,你兩個都勾選就是基本和Eclipse的功能保持了完全一致寻咒,只是勾選一個自然也可以.
還有一種方式就是利用IntelliJ提供的Navigation Bar评甜,IntelliJ很多功能操作都可以鍵盤化,這個就是喜歡鍵盤化操作的人的必備功能仔涩,操作方式就是打開文件的時候忍坷,使用快捷鍵?+UP (Jump to Navigation Bar)
,然后就會出現(xiàn)一個下拉熔脂,基本就是這個文件所在目錄的文件列表佩研,還可以使用上下左右的鍵位來選擇其他目錄,是不是很酷霞揉?
備注:此處建議把View > Navigation Bar
的選項點掉旬薯,這樣就使用快捷鍵之后就會在你鼠標的位置出現(xiàn),感覺會更輸入一些适秩,當然這樣你就基本失去了使用鼠標的權利绊序,這個需要你根據(jù)個人癖好使用即可。
快捷鍵使用
如果你是蘋果電腦用戶的話秽荞,建議你改成Mac OSX 10.5+的鍵位綁定骤公,因為Mac OSX 10.5這個兼容Windows的版本的鍵位實在是太蹩腳了,用著是真難受扬跋,好比你默認習慣?+w
是關閉標簽阶捆,在這個鍵位綁定中竟然是根據(jù)符號選擇文本的一個快捷鍵.
這里主要介紹幾個可能大家常用的,或者是你可能并不知道IntelliJ中有的幾個快捷鍵钦听,特別常用的你直接參照官網的Keymap介紹Getting Started就可以了洒试。學會在Keymap中自己查詢需要的快捷鍵是主要的,不要每次都打開那個沒用的百度朴上,具體可以參照本文最后給出的鏈接垒棋。
Outline調出
以前在Eclipse中用的很多的一個快捷鍵就是ctrl+o
,這樣可以調出代碼文件的所有成員變量和方法痪宰,并且可以支持搜索很是方便叼架,IntelliJ這種基本的功能自然是有,新手的話還經常問酵镜,這個在IntellJ中的快捷鍵是?+F12 (File Structure)
碉碉。如果你不是Mac OSX 10.5+鍵位綁定的話,小括號中的內容就是你可以去Keymap中去搜索的內容淮韭。
基本操作
-
復制整行或者塊:在Eclipse中使用
ctrl+alt+Up
垢粮,IntelliJ默認是?+D (Duplicate Line or Block)
,其實這個和Eclipse中的有差距靠粪,尤其是多行的時候或者選中內容的時候蜡吧,不信你可以試試毫蚓。所以你可以把Keymap中的Duplicate Lines
定義上一個快捷鍵,我定義的是Option+D
昔善,這個鍵位在我的默認綁定中是沒任何快捷鍵的元潘,你可以自己綁定一個試試。 -
根據(jù)符號選擇文本:這個鍵位用的太多了君仆,并且也是非常的好用翩概,舉個例子,有這樣一行代碼
<name>SpringSource Milestones Proxy</name>
你光標在Milestones中的某一個位置返咱,你想替換SpringSource Milestones Proxy
為其他單詞钥庇,假設想替換為Test XX
,其實這樣你只需要Option+Up (Select Word at Caret)
兩下就可以選中你想要的單詞了咖摹,當你想在開發(fā)過程中评姨,你會發(fā)現(xiàn)這個鍵位用的太多了,多到換了其他沒有這個鍵位的編輯器或者IDE上萤晴,很是不習慣吐句。 -
刪除整行: 可以直接
?+delete (Delete Line)
或者利用IntelliJ智能的功能,剪切的快捷鍵店读,當本行選中文本的時候剪切``?+x會按照選中的文本實現(xiàn)剪切嗦枢,但是你本行內無任何選中文本的時候會自動剪切整行,那么自然就類似一個刪除本行的快捷鍵两入,但是這個其實還是比較蹩腳的净宵,建議使用
?+delete`。 -
想直接跳轉到接口的實現(xiàn)方法:
?+option+鼠標單擊
或者?+option+B
裹纳。 -
語句自動完成 Statements completion:這個在IntelliJ IDEA 的 20 個代碼自動完成的特性中已經說明,這里還是著重說下紧武,因為的確很好用剃氧,也強烈推薦下,還有文中說的
智能自動完成 ctrl+shift+Space
阻星,當給你的提示太多的時候朋鞍,這個鍵絕對會給你驚喜. -
同樣單詞之間跳轉:在Eclipse中的快捷鍵是
ctrl+k
,這個挺好用的妥箕,在IntelliJ中也不缺這個功能滥酥,但是在Mac OSX 10.5+的鍵位綁定中默認為空。據(jù)說Windows的默認綁定中是有綁定的畦幢,自己可以查詢下坎吻,我自己綁定了一個?+ctrl+k (Find Word at Caret)
,沒有的需要自己綁定一個宇葱,然后還能結合其他的鍵位實現(xiàn)上一個?+G (Find Next)
下一個?+Shift+G (Find Previous)
的功能.很是實用瘦真。
版本控制設置
我們開發(fā)肯定是有版本控制的刊头,大家以前Eclipse的時候在本地文件和版本庫不一致的時候,那么文件以及所在的文件夾都會出現(xiàn)一個〉
表示诸尽,大家能很輕松的看到本地文件修改了哪一些原杂,但是IntelliJ中默認是不能這樣的。僅僅是給變化的文件在修改的時候提供了顏色上的變化您机,不包括其所在的各個父級文件夾哦穿肄,如果想和Eclipse一樣的話需要如下圖把設置勾選就可以了
其實看英文解釋就可以明白了,這個默認開啟以后如果想調整文件夾的顯示顏色的時候就直接去Settings > Editor > Colors & Fonts > File Status
中調整即可了际看,可以調整成自己喜歡的樣子咸产。
Java資源文件非英文的情況顯示
IntelliJ在資源文件這方面?zhèn)€人覺得也是完勝Eclipse的,在Resource Bundle方式下想修改一個屬性是相當方便的仿村,可以在一個操作界面上修改所有語言的屬性锐朴,這一切都是自動完成的祠墅,如下圖所示:
并且還很貼心的有一個排序和分組的功能眉枕,尤其是這個排序。
默認設置下也有一個問題胆筒,就是中文默認會顯示為Unicode碼的畏鼓,其實勾選一個設置(Settings > File Encodings
)就可以了酱酬,如下圖:
這樣設置以后所有Unicode顯示的就可以自動轉化為其應該顯示的語言了.
符合Maven約定結構的web項目如何更好的運行
記得剛開始用Eclipse的時候那時候默認是不支持Java EE項目的,必須使用一個MyEclipse的插件云矫,直到今天好似還有人在用這個玩意膳沽,當年的時候每個Web項目修改之后都必須Deploy一下,修改的東西才會被執(zhí)行让禀,很是痛苦挑社。后來就自己利用Tomcat插件,這個可以保證你修改jsp以及靜態(tài)文件的時候不需要Deploy直接就可以被執(zhí)行巡揍,因為Tomcat的目錄指向其實直接是指向到了你的項目文件痛阻,這樣的確省心了很多。
在IntelliJ中如果你是傳統(tǒng)的Java EE的結構(根目錄下面有src腮敌,webMoudle這樣的結構)阱当,那么在直接在Run Configurations中添加一個Tomcat即可,點擊+號添加即可(當然需要注意雖然沒搜索框糜工,你輸入字符會自動給你篩選結果)弊添,這樣運行的時候修改Java文件的話需要主動Make Project也就是?+F9 (Make Project)
.但是如果你是符合maven約定的項目結構的話如果繼續(xù)這樣配置就很不理想了,每次修改了jsp文件竟然也需要Make Project才可以捌木,因為每次Make Project以后IntelliJ會自動給你DeployMent油坝,這樣好似又回到了幾年前那種很麻煩的環(huán)境.
這個問題其實很容易解決,就是不要使用這種方式來運行你的web項目,既然符合maven結構的項目自然是使用maven或者gradle這種構建工具了免钻,那么你需要利用maven的jetty的插件來運行項目即可了彼水,如下圖配置即可:
當然你也可以如下圖直接點擊運行就會自動添加一個:
參看上圖其實也沒必須非用jetty,用tomcat6或者tomcat7的插件運行也可以极舔。
Eclipse的web結構項目如何導入和運行
鑒于有一些用戶還沒轉型Maven等來構建項目凤覆,當然我也衷心的說一句,構建這塊還是趕緊轉了吧.因為不轉的話還單獨出來這個章節(jié)拆魏,并且有的操作還是相當麻煩盯桦,下面也會講到,還是一一道來吧渤刃,導入的時候有兩個選擇然后我分兩個部分說明拥峦,點擊File > Import Project…
,然后選擇你的項目目錄卖子,點擊OK略号,如下圖:
使用新建項目來導入
這個方式圖中所示的第一種,導入基本就是一路next到完成洋闽,但是你第一次也可以費點心思注意下每一步做了啥玄柠,例如幫你分析了jar有哪一些,如果你使用了Spring還給你分析你的所有配置文件诫舅。最后完成以后項目就開始構建索引羽利,等一切就緒以后我們就可以完成的基本配置了,由于是web項目基本上能夠在Tomcat等服務器上跑起來就基本算成功了刊懈。主要幾個點:
- 處理好依賴關系这弧,因為我們沒使用maven,所以你得自己動手豐衣足食了
- 設置java文件的編譯路徑虚汛,如果需要的話
- 添加你的Tomcat匾浪,運行成功
依賴關系
打開File > Project Structure
,本節(jié)我們主要用到下圖幾個標紅的部分:
我們先了解下這幾個主要部件:
-
SDKs:主要存放了我們的JDK等卷哩,如下圖(我自己下載帶source的JDK户矢,這樣可以直接查看JDK相關的Java源代碼):
image.png -
Global Libraries:主要是公用的jar文件,例如servlet的幾個jar可能每個項目都需要殉疼,但是Eclipse的變量在此變得不好使,所以需要使用這個地方來配置捌年,如下圖參照使用即可:
image.png Facets:在此不做介紹瓢娜,如有需要后續(xù)添加
Libraries:這里基本是項目的庫,不是全局的礼预,導入的項目一般都會把你Eclipse中的眠砾。classpath中的所有的依賴都導過來作為一個lib庫,然后應用到你的項目的模塊中
Modules:這個基本包括了項目的模塊托酸,通常來說Eclipse的項目結構中是單模塊的
我們需要做的配置主要在Modules中褒颈,其他的幾個自己根據(jù)理解配置即可柒巫。
- 我們先查看Modules中的Sources,如下圖:
image.png
把項目所有的源碼都添加即可谷丸,圖中所示我的項目中其實少了resource的文件夾堡掏,這樣我選中resource然后點擊Sources即可,這樣就會在左邊的Source Folders中添加一個resource的文件夾刨疼。
-
然后是Paths部分泉唁,這個主要是class的輸出路徑,默認是在根目錄下的out文件夾中揩慕,如果項目中對配置文件的解析等有寫死路徑亭畜,必須嚴格遵循Java EE的規(guī)范的話,那么需要將此部分修改如下(如果不存在我假設的情況可忽略本步驟):
image.png 然后的Dependencies迎卤,就更好配置了拴鸵,添加需要的依賴即可。
這些步驟完成以后我們就可以點擊Run > Edit Configurations
蜗搔,點擊左上角的+號劲藐,然后選擇**Tomcat > Local Server **,這些步驟和Eclipse類似碍扔,選擇相應路徑等等瘩燥,只需要注意一點就可以,就是需要添加一個DeployMent不同,如下圖:
如果是Windows的圖中的DeployMent中的+號可能是在右側厉膀,點擊之后會彈出對話框選擇文件夾,選擇eclipse默認的webMoudle文件夾即可(MyEclipse就是WebRoot文件夾)二拐,這個一定不能選錯服鹅,不要選成項目的主文件夾,否則運行就不成功了百新,再然后ctrl+R
運行即可企软。以debug方式運行就是ctrl+D
。
使用IntelliJ對Eclipse項目的支持導入項目
基本參照上個基本都類似饭望,就是步驟比上個步驟要少點仗哨,如果出現(xiàn)問題參照上個章節(jié)即可。
HQL查詢支持
以前Eclipse有個HQL的插件可以直接輸入HQL語法铅辞,查詢測試結果是否正確厌漂,在IntelliJ中你也可以,不過不需要任何插件默認提供支持的斟珊,如果在導入項目的時候沒有自動添加Hibernate的支持的話苇倡,那需要添加一下Hibernate的支持,鼠標選中項目,點擊右鍵如下圖:
點擊選擇Hibernate即可旨椒,如果沒有Hibernate應該是項目已經自動添加了Hibernate的支持了晓褪。然后完成以后就可以如下圖操作即可:
選中上面HQL圖標,在出來的控制臺輸入你想輸入的HQL即可了综慎,一樣可以自動完成的哦涣仿。
注意事項
- IntelliJ對于文件是默認隨時保存的,基本不需要你
?+s
(這個鍵位默認是保存所有)寥粹,所以需要注意不要隨手不小心把某個文件改了下变过,然后直接關閉標簽了,其實你的無意的操作已經導致修改了文件涝涤,可能導致你在項目運行的時候發(fā)現(xiàn)一個很離奇的錯誤媚狰,我暫時沒發(fā)現(xiàn)可以關閉自動保存的設置,如果你對此非有強迫癥的話阔拳,vim的插件可能會幫助到你崭孤。 - IntelliJ中的文件是實時和本地文件同步的,所以Eclipse的刷新功能就不要問了糊肠,因為在這根本不需要那個功能辨宠。有的編輯器會提醒你是否和本地文件更新,這里也是默認不給任何提醒的货裹,只要你修改了嗤形,這里就會立即自動同步更新文件。
- 在主菜單
File
下面弧圆,有個奇怪的Power Save Mode赋兵,這里也說明下,這個顧名思義是省電模式搔预。當你勾選此模式以后霹期,IntelliJ不會給你完成任何自動完成的功能,例如本來你輸入一個字符會自動提示的拯田,勾選以后就沒有了历造,如果出現(xiàn)此問題的話可以考慮是不是自己手賤點過這個按鈕噢,這個還是比較適合開會的時候無聊看代碼用的船庇,又省電又不影響你看代碼吭产。 - Eclipse中有個
F2
的功能,可以查看到Java文件定義鸭轮,你在Spring的配置文件中可能需要配置這個值垮刹,但是在IntelliJ中這個是不需要的,因為對于Spring這樣的支持很是完善张弛,你只需要在class的屬性中輸入class的名字然后ctrl+空格 (Basic 這個在code的completion下面)
自動就完成了全路徑,在智能的條件下可能就不需要蹩腳的實現(xiàn)。 - 項目剛開始導入或者清除cache重新打開的時候吞鸭,下面的狀態(tài)欄部分會顯示Indexing寺董,這個時候你就等著就可以了,基本你想做的事情什么都不能做刻剥,別在這個時候著急點來點去遮咖,不過它索引的速度挺快的,別著急造虏。
- Eclipse有個Save Actions的功能御吞,主要是針對Java可以自動格式化以及優(yōu)化import等功能,這個在IntelliJ上其實默認是沒有的漓藕,想在IntelliJ中使用這功能可以使用以下兩個思路:
- 利用宏錄制陶珠,宏在開始以后你就格式化下代碼,然后優(yōu)化下import等操作享钞,然后結束把宏定義一個
?+s
揍诽,不過問題就是不管什么文件都會執(zhí)行這個宏,不僅僅是java文件栗竖,我就是利用這個宏主要完成把tab轉為空格暑脆。 - 使用Eclipse Code Formatter的插件,這個插件基本和Eclipse默認的功能類似狐肢,但是也有少許區(qū)別添吗,用戶自己思量是否使用即可。
- 利用宏錄制陶珠,宏在開始以后你就格式化下代碼,然后優(yōu)化下import等操作享钞,然后結束把宏定義一個
- 在Mac下IntelliJ代碼區(qū)域是支持手勢放大的份名,這個在給別人演示的時候很是方便碟联。但是Run、Debug等視圖的時候默認能使想到的就是手動的拖動大小同窘,很是不便玄帕。你可以嘗試下
?+shift+up/down (Stretch to Top / Bottom)
,當然其他的project視圖等的也都可以利用這個快捷鍵配置上下左右的方向鍵來配置使用想邦,方便的很裤纹,強烈推薦使用。 - Eclipse中可以同一個窗口打開多個項目丧没,但是IntelliJ IDEA在這里的設計是不一樣的鹰椒,具體可以參看IntelliJ IDEA Q&A for Eclipse Users。
- jar的source依賴問題呕童,如果你是使用Maven的話都是可以自動完成的漆际,只需要你發(fā)布出你的source jar就可以,但是如果你項目不是使用maven的話你就需要在項目配置的依賴的地方夺饲,點擊你的需要引入source的jar奸汇,然后右鍵編輯施符,add你的本地source目錄就可以了,不需要做Project的多個moudle即可擂找,這里和Eclipse中的基本相似戳吝。
最后
第一次發(fā)文,如果有什么問題歡迎留言交流贯涎,原始文檔放在github上听哭,各位如果也有一些技巧不妨共同完善下本文檔。只需要Fock然后Pull Request就可以了塘雳,如果你覺得有個github帳號過于麻煩的話陆盘,那我個人覺得你還是轉行比較合適。如果不想更新只是想訂閱持續(xù)更新的內容败明,只需要Watch該項目即可隘马。還可以對項目Star,這樣你就可以在自己的帳號頁面快速找到本項目肩刃。
附錄
Win快捷鍵 Win Keymap
Mac OS 快捷鍵 Mac OS Keymap
原文地址:https://github.com/ethanfu/Documents/blob/master/intellij/intellij_idea_use_documents.md