【IDEAEclipse】2、从Eclipse转移到IntelliJ IDEA一点心得
本人使用IntelliJ IDEA其實(shí)并不太久,用了這段時(shí)間以后,覺得的確很是好用。剛剛從Eclipse轉(zhuǎn)過來的很多人開始可能不適應(yīng),我就把使用過程中的一些經(jīng)驗(yàn)和常用功能分享下,當(dāng)然在看這篇之前推薦你先看完IntelliJ IDEA 的 20 個(gè)代碼自動(dòng)完成的特性,這篇文章對(duì)自動(dòng)完成的特性介紹的非常好,只是快捷鍵說明部分還可以更完善一些,可以照顧下默認(rèn)綁定鍵位不一致的童鞋。本文在說明快捷鍵的時(shí)候是根據(jù)Mac OSX 10.5+的默認(rèn)keymap,當(dāng)然也會(huì)提供相關(guān)的文字說明,如果和我的綁定不一致的可以直接去keymap中搜索即可。
基本設(shè)置
顯示行號(hào)
這個(gè)以前在Eclipse中是個(gè)很簡(jiǎn)單的問題,轉(zhuǎn)移到IntelliJ上以后的一些人也問過這個(gè)問題。使用同樣的方式設(shè)置了以后發(fā)現(xiàn)只是對(duì)當(dāng)前文件起作用了,打開另外一個(gè)文件依然沒有行號(hào)。就好比你只是在vim中執(zhí)行命令set number,而不是在.vimrc中設(shè)置一樣的效果。這個(gè)是需要在IDE Settings中設(shè)置下的,如圖所示勾選即可:??其他設(shè)置可參照該設(shè)置項(xiàng)勾選即可,例如顯示空格等等.
文件和導(dǎo)航關(guān)聯(lián)
我們?cè)趯懘a的時(shí)候經(jīng)常需要打開某個(gè)文件的時(shí)候,想在左邊的文件樹上自動(dòng)打開關(guān)聯(lián)到位置,這樣很方便的找尋本目錄下的其他文件或者其他的相關(guān)文件,其實(shí)這個(gè)IntelliJ提供了好幾種解決方案,第一個(gè)就是和Eclipse一樣的方式,如下:
- 以前在Eclipse中設(shè)置也很簡(jiǎn)單,但是IntelliJ里面稍微有點(diǎn)不一樣,如果想臨時(shí)一次的話,打開文件的時(shí)候點(diǎn)擊下圖的小地球(第一眼看的時(shí)候很像個(gè)小地球儀)圖標(biāo)即可?如果你想和Eclipse的那個(gè)一樣,讓這一切自動(dòng)的話,那么在上圖的浮層中可以看到兩個(gè)選項(xiàng)AutoScroll to Source和AutoScroll from source,IntelliJ很人性化的分了兩個(gè)設(shè)置在里面,你兩個(gè)都勾選就是基本和Eclipse的功能保持了完全一致,只是勾選一個(gè)自然也可以.
還有一種方式就是利用IntelliJ提供的Navigation Bar,IntelliJ很多功能操作都可以鍵盤化,這個(gè)就是喜歡鍵盤化操作的人的必備功能,操作方式就是打開文件的時(shí)候,使用快捷鍵?+UP (Jump to Navigation Bar),然后就會(huì)出現(xiàn)一個(gè)下拉,基本就是這個(gè)文件所在目錄的文件列表,還可以使用上下左右的鍵位來選擇其他目錄,是不是很酷?
備注:此處建議把View > Navigation Bar的選項(xiàng)點(diǎn)掉,這樣就使用快捷鍵之后就會(huì)在你鼠標(biāo)的位置出現(xiàn),感覺會(huì)更輸入一些,當(dāng)然這樣你就基本失去了使用鼠標(biāo)的權(quán)利,這個(gè)需要你根據(jù)個(gè)人癖好使用即可。
快捷鍵使用
如果你是蘋果電腦用戶的話,建議你改成Mac OSX 10.5+的鍵位綁定,因?yàn)镸ac OSX 10.5這個(gè)兼容Windows的版本的鍵位實(shí)在是太蹩腳了,用著是真難受,好比你默認(rèn)習(xí)慣?+w是關(guān)閉標(biāo)簽,在這個(gè)鍵位綁定中竟然是根據(jù)符號(hào)選擇文本的一個(gè)快捷鍵.
這里主要介紹幾個(gè)可能大家常用的,或者是你可能并不知道IntelliJ中有的幾個(gè)快捷鍵,特別常用的你直接參照官網(wǎng)的Keymap介紹Getting Started就可以了。學(xué)會(huì)在Keymap中自己查詢需要的快捷鍵是主要的,不要每次都打開那個(gè)沒用的百度,具體可以參照本文最后給出的鏈接。
Outline調(diào)出
以前在Eclipse中用的很多的一個(gè)快捷鍵就是ctrl+o,這樣可以調(diào)出代碼文件的所有成員變量和方法,并且可以支持搜索很是方便,IntelliJ這種基本的功能自然是有,新手的話還經(jīng)常問,這個(gè)在IntellJ中的快捷鍵是?+F12 (File Structure)。如果你不是Mac OSX 10.5+鍵位綁定的話,小括號(hào)中的內(nèi)容就是你可以去Keymap中去搜索的內(nèi)容。
基本操作
- 復(fù)制整行或者塊:在Eclipse中使用ctrl+alt+Up,IntelliJ默認(rèn)是?+D (Duplicate Line or Block),其實(shí)這個(gè)和Eclipse中的有差距,尤其是多行的時(shí)候或者選中內(nèi)容的時(shí)候,不信你可以試試。所以你可以把Keymap中的Duplicate Lines定義上一個(gè)快捷鍵,我定義的是Option+D,這個(gè)鍵位在我的默認(rèn)綁定中是沒任何快捷鍵的,你可以自己綁定一個(gè)試試。
- 根據(jù)符號(hào)選擇文本:這個(gè)鍵位用的太多了,并且也是非常的好用,舉個(gè)例子,有這樣一行代碼<name>SpringSource Milestones Proxy</name>?你光標(biāo)在Milestones中的某一個(gè)位置,你想替換SpringSource Milestones Proxy為其他單詞,假設(shè)想替換為Test XX,其實(shí)這樣你只需要Option+Up (Select Word at Caret)兩下就可以選中你想要的單詞了,當(dāng)你想在開發(fā)過程中,你會(huì)發(fā)現(xiàn)這個(gè)鍵位用的太多了,多到換了其他沒有這個(gè)鍵位的編輯器或者IDE上,很是不習(xí)慣。
- 刪除整行:?可以直接?+delete (Delete Line)或者利用IntelliJ智能的功能,剪切的快捷鍵,當(dāng)本行選中文本的時(shí)候剪切`?+x會(huì)按照選中的文本實(shí)現(xiàn)剪切,但是你本行內(nèi)無任何選中文本的時(shí)候會(huì)自動(dòng)剪切整行,那么自然就類似一個(gè)刪除本行的快捷鍵,但是這個(gè)其實(shí)還是比較蹩腳的,建議使用?+delete。
- 想直接跳轉(zhuǎn)到接口的實(shí)現(xiàn)方法:??+option+鼠標(biāo)單擊或者?+option+B。
- 語句自動(dòng)完成 Statements completion:這個(gè)在IntelliJ IDEA 的 20 個(gè)代碼自動(dòng)完成的特性中已經(jīng)說明,這里還是著重說下,因?yàn)榈拇_很好用,也強(qiáng)烈推薦下,還有文中說的智能自動(dòng)完成 ctrl+shift+Space,當(dāng)給你的提示太多的時(shí)候,這個(gè)鍵絕對(duì)會(huì)給你驚喜.
- 同樣單詞之間跳轉(zhuǎn):在Eclipse中的快捷鍵是ctrl+k,這個(gè)挺好用的,在IntelliJ中也不缺這個(gè)功能,但是在Mac OSX 10.5+的鍵位綁定中默認(rèn)為空。據(jù)說Windows的默認(rèn)綁定中是有綁定的,自己可以查詢下,我自己綁定了一個(gè)?+ctrl+k (Find Word at Caret),沒有的需要自己綁定一個(gè),然后還能結(jié)合其他的鍵位實(shí)現(xiàn)上一個(gè)?+G (Find Next)下一個(gè)?+Shift+G (Find Previous)的功能.很是實(shí)用。
版本控制設(shè)置
我們開發(fā)肯定是有版本控制的,大家以前Eclipse的時(shí)候在本地文件和版本庫不一致的時(shí)候,那么文件以及所在的文件夾都會(huì)出現(xiàn)一個(gè)〉表示,大家能很輕松的看到本地文件修改了哪一些,但是IntelliJ中默認(rèn)是不能這樣的。僅僅是給變化的文件在修改的時(shí)候提供了顏色上的變化,不包括其所在的各個(gè)父級(jí)文件夾哦,如果想和Eclipse一樣的話需要如下圖把設(shè)置勾選就可以了
其實(shí)看英文解釋就可以明白了,這個(gè)默認(rèn)開啟以后如果想調(diào)整文件夾的顯示顏色的時(shí)候就直接去Settings > Editor > Colors & Fonts > File Status中調(diào)整即可了,可以調(diào)整成自己喜歡的樣子。
Java資源文件非英文的情況顯示
IntelliJ在資源文件這方面?zhèn)€人覺得也是完勝Eclipse的,在Resource Bundle方式下想修改一個(gè)屬性是相當(dāng)方便的,可以在一個(gè)操作界面上修改所有語言的屬性,這一切都是自動(dòng)完成的,如下圖所示:
并且還很貼心的有一個(gè)排序和分組的功能,尤其是這個(gè)排序。
默認(rèn)設(shè)置下也有一個(gè)問題,就是中文默認(rèn)會(huì)顯示為Unicode碼的,其實(shí)勾選一個(gè)設(shè)置(Settings > File Encodings)就可以了,如下圖:
這樣設(shè)置以后所有Unicode顯示的就可以自動(dòng)轉(zhuǎn)化為其應(yīng)該顯示的語言了.
符合Maven約定結(jié)構(gòu)的web項(xiàng)目如何更好的運(yùn)行
記得剛開始用Eclipse的時(shí)候那時(shí)候默認(rèn)是不支持Java EE項(xiàng)目的,必須使用一個(gè)MyEclipse的插件,直到今天好似還有人在用這個(gè)玩意,當(dāng)年的時(shí)候每個(gè)Web項(xiàng)目修改之后都必須Deploy一下,修改的東西才會(huì)被執(zhí)行,很是痛苦。后來就自己利用Tomcat插件,這個(gè)可以保證你修改jsp以及靜態(tài)文件的時(shí)候不需要Deploy直接就可以被執(zhí)行,因?yàn)門omcat的目錄指向其實(shí)直接是指向到了你的項(xiàng)目文件,這樣的確省心了很多。
在IntelliJ中如果你是傳統(tǒng)的Java EE的結(jié)構(gòu)(根目錄下面有src,webMoudle這樣的結(jié)構(gòu)),那么在直接在Run Configurations中添加一個(gè)Tomcat即可,點(diǎn)擊+號(hào)添加即可(當(dāng)然需要注意雖然沒搜索框,你輸入字符會(huì)自動(dòng)給你篩選結(jié)果),這樣運(yùn)行的時(shí)候修改Java文件的話需要主動(dòng)Make Project也就是?+F9 (Make Project).但是如果你是符合maven約定的項(xiàng)目結(jié)構(gòu)的話如果繼續(xù)這樣配置就很不理想了,每次修改了jsp文件竟然也需要Make Project才可以,因?yàn)槊看蜯ake Project以后IntelliJ會(huì)自動(dòng)給你DeployMent,這樣好似又回到了幾年前那種很麻煩的環(huán)境.
這個(gè)問題其實(shí)很容易解決,就是不要使用這種方式來運(yùn)行你的web項(xiàng)目,既然符合maven結(jié)構(gòu)的項(xiàng)目自然是使用maven或者gradle這種構(gòu)建工具了,那么你需要利用maven的jetty的插件來運(yùn)行項(xiàng)目即可了,如下圖配置即可:?
當(dāng)然你也可以如下圖直接點(diǎn)擊運(yùn)行就會(huì)自動(dòng)添加一個(gè):
參看上圖其實(shí)也沒必須非用jetty,用tomcat6或者tomcat7的插件運(yùn)行也可以。
Eclipse的web結(jié)構(gòu)項(xiàng)目如何導(dǎo)入和運(yùn)行
鑒于有一些用戶還沒轉(zhuǎn)型Maven等來構(gòu)建項(xiàng)目,當(dāng)然我也衷心的說一句,構(gòu)建這塊還是趕緊轉(zhuǎn)了吧.因?yàn)椴晦D(zhuǎn)的話還單獨(dú)出來這個(gè)章節(jié),并且有的操作還是相當(dāng)麻煩,下面也會(huì)講到,還是一一道來吧,導(dǎo)入的時(shí)候有兩個(gè)選擇然后我分兩個(gè)部分說明,點(diǎn)擊File > Import Project…,然后選擇你的項(xiàng)目目錄,點(diǎn)擊OK,如下圖:
使用新建項(xiàng)目來導(dǎo)入
這個(gè)方式圖中所示的第一種,導(dǎo)入基本就是一路next到完成,但是你第一次也可以費(fèi)點(diǎn)心思注意下每一步做了啥,例如幫你分析了jar有哪一些,如果你使用了Spring還給你分析你的所有配置文件。最后完成以后項(xiàng)目就開始構(gòu)建索引,等一切就緒以后我們就可以完成的基本配置了,由于是web項(xiàng)目基本上能夠在Tomcat等服務(wù)器上跑起來就基本算成功了。主要幾個(gè)點(diǎn):
- 處理好依賴關(guān)系,因?yàn)槲覀儧]使用maven,所以你得自己動(dòng)手豐衣足食了
- 設(shè)置java文件的編譯路徑,如果需要的話
- 添加你的Tomcat,運(yùn)行成功
依賴關(guān)系
打開File > Project Structure?,本節(jié)我們主要用到下圖幾個(gè)標(biāo)紅的部分:?
我們先了解下這幾個(gè)主要部件:
- SDKs:主要存放了我們的JDK等,如下圖(我自己下載帶source的JDK,這樣可以直接查看JDK相關(guān)的Java源代碼):?
- Global Libraries:主要是公用的jar文件,例如servlet的幾個(gè)jar可能每個(gè)項(xiàng)目都需要,但是Eclipse的變量在此變得不好使,所以需要使用這個(gè)地方來配置,如下圖參照使用即可:?
- Facets:在此不做介紹,如有需要后續(xù)添加
- Libraries:這里基本是項(xiàng)目的庫,不是全局的,導(dǎo)入的項(xiàng)目一般都會(huì)把你Eclipse中的。classpath中的所有的依賴都導(dǎo)過來作為一個(gè)lib庫,然后應(yīng)用到你的項(xiàng)目的模塊中
- Modules:這個(gè)基本包括了項(xiàng)目的模塊,通常來說Eclipse的項(xiàng)目結(jié)構(gòu)中是單模塊的
我們需要做的配置主要在Modules中,其他的幾個(gè)自己根據(jù)理解配置即可。
把項(xiàng)目所有的源碼都添加即可,圖中所示我的項(xiàng)目中其實(shí)少了resource的文件夾,這樣我選中resource然后點(diǎn)擊Sources即可,這樣就會(huì)在左邊的Source Folders中添加一個(gè)resource的文件夾。
這些步驟完成以后我們就可以點(diǎn)擊Run > Edit Configurations?,點(diǎn)擊左上角的+號(hào),然后選擇**Tomcat > Local Server **,這些步驟和Eclipse類似,選擇相應(yīng)路徑等等,只需要注意一點(diǎn)就可以,就是需要添加一個(gè)DeployMent,如下圖:
如果是Windows的圖中的DeployMent中的+號(hào)可能是在右側(cè),點(diǎn)擊之后會(huì)彈出對(duì)話框選擇文件夾,選擇eclipse默認(rèn)的webMoudle文件夾即可(MyEclipse就是WebRoot文件夾),這個(gè)一定不能選錯(cuò),不要選成項(xiàng)目的主文件夾,否則運(yùn)行就不成功了,再然后ctrl+R運(yùn)行即可。以debug方式運(yùn)行就是ctrl+D。
使用IntelliJ對(duì)Eclipse項(xiàng)目的支持導(dǎo)入項(xiàng)目
基本參照上個(gè)基本都類似,就是步驟比上個(gè)步驟要少點(diǎn),如果出現(xiàn)問題參照上個(gè)章節(jié)即可。
HQL查詢支持
以前Eclipse有個(gè)HQL的插件可以直接輸入HQL語法,查詢測(cè)試結(jié)果是否正確,在IntelliJ中你也可以,不過不需要任何插件默認(rèn)提供支持的,如果在導(dǎo)入項(xiàng)目的時(shí)候沒有自動(dòng)添加Hibernate的支持的話,那需要添加一下Hibernate的支持,鼠標(biāo)選中項(xiàng)目,點(diǎn)擊右鍵如下圖:
點(diǎn)擊選擇Hibernate即可,如果沒有Hibernate應(yīng)該是項(xiàng)目已經(jīng)自動(dòng)添加了Hibernate的支持了。然后完成以后就可以如下圖操作即可:
選中上面HQL圖標(biāo),在出來的控制臺(tái)輸入你想輸入的HQL即可了,一樣可以自動(dòng)完成的哦。
注意事項(xiàng)
- 利用宏錄制,宏在開始以后你就格式化下代碼,然后優(yōu)化下import等操作,然后結(jié)束把宏定義一個(gè)?+s,不過問題就是不管什么文件都會(huì)執(zhí)行這個(gè)宏,不僅僅是java文件,我就是利用這個(gè)宏主要完成把tab轉(zhuǎn)為空格。
- 使用Eclipse Code Formatter的插件,這個(gè)插件基本和Eclipse默認(rèn)的功能類似,但是也有少許區(qū)別,用戶自己思量是否使用即可。
轉(zhuǎn)自:http://www.ituring.com.cn/article/37792
轉(zhuǎn)載于:https://www.cnblogs.com/wangzhongqiu/p/6703502.html
總結(jié)
以上是生活随笔為你收集整理的【IDEAEclipse】2、从Eclipse转移到IntelliJ IDEA一点心得的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [USACO11NOV]牛的障碍Cow
- 下一篇: 20162318 2016-2017-2