IDEA用的時(shí)間也比較長(zhǎng)了,很多提高工作效率的小技巧一直沒(méi)有注意,公眾號(hào)推了不錯(cuò)的文章,覺(jué)得挺不錯(cuò)的,所以自己就轉(zhuǎn)載過(guò)來(lái),方便自己查詢,以此同時(shí),會(huì)增加一些工作中使用到的。
寫在前面
以前一直用的elipce,如今入坑IntelliJ IDEA,沒(méi)想到啊。深深的愛(ài)上了它,強(qiáng)大到無(wú)所不能;
"工欲善其事必先利其器",IntelliJ IDEA作為一個(gè)非常好用的工具,他的神奇之處真的很多很多,掌握了這款idea的技巧之后,開發(fā)效率至少提升兩倍以上,而且對(duì)一些英語(yǔ)不好的學(xué)習(xí)者也是非常友好,這篇文章詳細(xì)的介紹了常用快捷鍵以及一些非常實(shí)用的小工具,感興趣的小伙伴們趕快來(lái)學(xué)習(xí);
熟練掌握這些操作,編碼速度與質(zhì)量一定能得到一個(gè)質(zhì)的飛躍;
一、視圖查看
Ctrl+F12 查看file,method結(jié)構(gòu)圖、類繼承機(jī)構(gòu)圖
(不知道方法結(jié)構(gòu),Ctrl+F12一下,方法,參數(shù),返回值,一清二楚的展現(xiàn)出來(lái))
Ctrl+shift+Alt+U 查看maven依賴,類圖
使用maven做項(xiàng)目時(shí),依賴往往非常多,在配置依賴的文件中只需要Ctrl+shift+Alt+U,所有依賴都以拓?fù)鋱D的方式展現(xiàn)出來(lái),所有的關(guān)系和位置都能找到;
如下圖(抱歉,項(xiàng)目依賴太多,具體的依賴需要放大)
類圖:我們閱讀源碼的時(shí)候,想知道各個(gè)類之間的關(guān)系怎么辦,Ctrl+shift+Alt+U,所有依賴都以拓?fù)鋱D的方式展現(xiàn)出來(lái),所有的關(guān)系和位置都能找到,以ArrayList為例:
Ctrl+Alt+H 查看方法調(diào)用層次;
二、定位
1.項(xiàng)目之間的跳轉(zhuǎn)
Ctrl+Alt+[ 跳轉(zhuǎn)到下一個(gè)項(xiàng)目
Ctrl+Alt+] 跳轉(zhuǎn)到上一個(gè)項(xiàng)目
2.文件之間的跳轉(zhuǎn)
Ctrl+E 定位到最近瀏覽過(guò)的文件
Ctrl+Shift+E 最近更改的文件
Shift+Click 可以關(guān)閉文件
3.位置的跳轉(zhuǎn)
Ctrl+Shift+Backspace 跳轉(zhuǎn)上一次修改的地方
Ctrl+Alt+B 跳轉(zhuǎn)到方法實(shí)現(xiàn)處
Ctrl+Shift+左箭頭 上一個(gè)瀏覽的地方
Ctrl+Shift+右箭頭 下一個(gè)瀏覽的地方
4.其他的跳轉(zhuǎn)
Ctrl+H 顯示類結(jié)構(gòu)圖(類的繼承層次)
Ctrl+Q 顯示注釋文檔
Alt+1 快速打開或隱藏工程面板
Alt+left/right 切換代碼視圖
F2 或 Shift+F2 高亮錯(cuò)誤或警告快速定位
Tab 代碼標(biāo)簽輸入完成后,按 Tab,生成代碼
Ctrl+Shift+F7 高亮顯示所有該文本,按 Esc 高亮消失
5.搜索
Ctrl+N 快速搜索類
Ctrl+Shift+N 快速搜索文件
Ctrl+Alt+Shift+N 快速搜索函數(shù)
三個(gè)里面都有Include non-porjecct items選項(xiàng),勾選則表示非當(dāng)前文件中的jar里面所有的類也會(huì)被查找;

Ctrl+Shift+F 快速搜索字符串

Alt+F1 查找代碼所在位置
Alt+F3 逐個(gè)往下查找相同文本,并高亮顯示
6.光標(biāo)移動(dòng)和選中
Ctrl+Alt+Shift+J 選中所有相應(yīng)的目標(biāo)
Alt+Up/Down 在方法間快速移動(dòng)定位
Ctrl+Shift+Up/Down 向上/下移動(dòng)語(yǔ)句
Ctrl+Up/Down 光標(biāo)中轉(zhuǎn)到第一行或最后一行下
Ctrl+B/Ctrl+Click 快速打開光標(biāo)處的類或方法(跳轉(zhuǎn)到定義處)
三、Alt+Enter
雖然只用一個(gè)組合按鍵,但是它的作用非常大
1. 提供代碼提示

代碼報(bào)錯(cuò)只要alt+Enter一下,他就為我們提供了好了解決方案;
2.自動(dòng)創(chuàng)建函數(shù)

只要寫好函數(shù)名稱,Alt+Enter一下,它就能幫我們自動(dòng)創(chuàng)建好函數(shù);
3.list replace
寫完一個(gè)list用for遍歷;Alt+Enter一下,他就告訴你還有更好的重構(gòu)方法:

回車它就能幫你重構(gòu)好;
4.實(shí)現(xiàn)接口
當(dāng)我們需要實(shí)現(xiàn)接口的時(shí)候,只需要在接口的名稱上Alt+Enter就能做到

5.單詞拼寫
程序員好多都英語(yǔ)不好,Alt+Enter簡(jiǎn)直是他們的福音;
當(dāng)我們拿不準(zhǔn)一個(gè)單詞拼寫對(duì)不對(duì)的時(shí)候不放,Alt+Enter一下。

回車以后它能把相似的單詞都列出來(lái),

我們只需要找到對(duì)的那個(gè)就ok,是不是很好用。
靜態(tài)常量通常都是大寫+下劃線,如果不喜歡切換大寫,然后寫變量名,可以先用小寫拼寫變量名,然后使用快捷鍵:Crt+Shift+U,把變量名變成大寫。
6.導(dǎo)包
當(dāng)你需要使用某個(gè)包時(shí),只需要把光標(biāo)移動(dòng)到想導(dǎo)包的名稱上,Alt+Enter導(dǎo)入完成;
四、live Templates(模板)

這是定義了大量的模板,只用敲出小小的幾個(gè)字母提示,就可以回車使用模板生成大量的代碼;
大家也可以在這里把常用的代碼定義成模板,像main方法,for循環(huán)等等,方便快捷;
例如public static final int可以定義成下圖所示:

不會(huì)自定義的查看創(chuàng)建模板的教程:https://www.imooc.com/video/16219
五、postfix

大家在寫代碼的時(shí)候,寫完代碼會(huì)用點(diǎn)來(lái)提示我們,例如,100. 敲完回車會(huì)生成一個(gè)for循環(huán),用到的就是postfix,這是一種比 live Templates還快的小助手,當(dāng)然它也是不可編輯的,里面定義了大量常見(jiàn)的函數(shù)和模板,熟練使用能提高我們很多的編碼效率;
例如:

回車以后結(jié)果如下
1 List<String> strings = new ArrayList();2 for (int i = 0; i < strings.size(); i++) {3 4 }
六、重構(gòu)
Shift+F6 重命名
所有的文件,類名,函數(shù)名,屬性名都可以重命名,
值得點(diǎn)贊的是,只要你使用Shift+F6重命名,所有使用過(guò)這個(gè)名稱的地方都會(huì)跟著改變;
函數(shù)的重構(gòu)
Ctrl+F6 重構(gòu)函數(shù)
當(dāng)你需要重構(gòu)方法時(shí),無(wú)論是增加參數(shù),修改返回值,還是更改函數(shù)實(shí)現(xiàn),只需要Ctrl+F6,就可以把所有用到此函數(shù)的地方一起重構(gòu),界面如下
七、抽取
1.抽取變量
類似于圖中這樣,很多地方都用到了“aaaaaa”這個(gè)字符串,很明顯我們把“aaaaaa”抽取出來(lái)會(huì)更好;
對(duì)著它Ctrl+Alt+v
我們按照自己的需求,選擇抽取一個(gè)還是抽取所有;
Ctrl+Alt+C 抽取靜態(tài)變量
Ctrl+Alt+F 抽取成員變量
使用方法和抽取變量類似
Ctrl+Alt+P 抽取方法參數(shù)
Ctrl+Alt+M 抽取方法
當(dāng)一個(gè)方法長(zhǎng)度過(guò)長(zhǎng)的時(shí)候,只需要把代碼分離成多個(gè)模塊,選中各個(gè)模塊只要Ctrl+Alt+M就能抽取為一個(gè)新的方法,我們只需要引用就好;
其他的一些小技巧:
1.每次寫完代碼都 Ctrl+Alt+L 一下,代碼美觀又符合規(guī)范;