作者:Sam哥哥聊技術(shù)
原文鏈接:https://blog.csdn.net/linsongbin1/article/details/80560332
概述
在2018年5月6日寫了一篇介紹IntellIJ IDEA的文章沉馆,Intellij IDEA神器居然還有這些小技巧,主要是列出一些平時(shí)大家可能沒(méi)用過(guò)或者沒(méi)怎么用德崭,但是又非常好用的IntellIJ IDEA
小技巧斥黑。由于篇幅原因,只是列出了一小部分眉厨,那么接下來(lái)的這篇文章锌奴,會(huì)繼續(xù)補(bǔ)充一些IntellIJ IDEA
的小技巧。
別輕易自定義快捷鍵
有蠻多操作憾股,IntellIJ IDEA
并沒(méi)有給我們?cè)O(shè)置默認(rèn)快捷鍵鹿蜀,需要使用者自己去定義快捷鍵。比如說(shuō):
- Rebuild Project
- Compare With Branch
為了能在IntellIJ IDEA
里進(jìn)行無(wú)鼠標(biāo)編程
服球,很多程序員都會(huì)自定義快捷鍵茴恰,但是有三個(gè)地方你可能需要注意一下。
- 經(jīng)常會(huì)出現(xiàn)快捷鍵與其他應(yīng)用的快捷鍵沖突的情況斩熊;
- 自定義太多快捷鍵了往枣,你也不太好記住;
- 使用其他同事的IDEA時(shí)(比如說(shuō)幫忙定位問(wèn)題)分冈,你自定義的快捷鍵沒(méi)法用圾另。
其實(shí)在IntellIJ IDEA
里的每個(gè)操作,都可以看出一個(gè)action
雕沉。我們可以使用ctrl+shift+a
來(lái)輸入我們要使用的操作盯捌。比如說(shuō),上面提到的Rebuild Project
蘑秽。你可以先使用ctrl+shift+a
快捷鍵饺著,然后輸入Rebuild Project
并回車,即可執(zhí)行你要的操作。
對(duì)我自己來(lái)說(shuō)肠牲,除了基礎(chǔ)的快捷鍵幼衰,ctrl+shift+a
是我用最頻繁的快捷鍵了。
使用ctrl+alt+h要小心
ctrl+alt+h
非常好用,但是有個(gè)坑,當(dāng)同一個(gè)方法里,調(diào)用某個(gè)方法多次的時(shí)候,比如說(shuō)下面的代碼:
public class TestService {
public void test1() {
System.out.println("aa");
}
public void test2() {
test1();
}
public void test3() {
test1();
//無(wú)數(shù)業(yè)務(wù)操作后,再次電影test1()方法
test1();
}
}
如果我們想知道有哪些地方調(diào)用了test1()
方法缀雳,使用ctrl+alt+h
無(wú)法正確列出來(lái)的渡嚣。因?yàn)?code>ctrl+alt+h只能告訴你調(diào)用的層次。
ctrl+alt+h
只是會(huì)在某個(gè)隱蔽的地方肥印,告訴你识椰,test3()
方法調(diào)用了test1()
方法兩次。這樣就很容易坑到開發(fā)者深碱,因?yàn)榇蟛糠秩丝赡懿惶⒁夂竺娴恼{(diào)用次數(shù)腹鹉,導(dǎo)致改bug
的時(shí)候,以為全部都改了呢敷硅?
如果你想精確的列出到底哪些地方調(diào)用了test1()
方法功咒,你需要使用alt+f7
這個(gè)快捷鍵。
尤其是我們?cè)陂喿x極其復(fù)雜的業(yè)務(wù)代碼時(shí)绞蹦,使用alt+f7
就非常合適力奋。
當(dāng)然alt+f7
也可以作用在變量上,列出某個(gè)類里幽七,哪些地方使用了該變量景殷。
ctrl+alt+h被問(wèn)的最多的兩個(gè)問(wèn)題
經(jīng)常有同事和網(wǎng)友問(wèn)我。
Sam哥澡屡,使用ctrl+alt+h怎么跳轉(zhuǎn)到源代碼猿挚,又如何重新回到ctrl+alt+h對(duì)應(yīng)的視圖里面。
調(diào)轉(zhuǎn)到源代碼
其實(shí)很簡(jiǎn)單挪蹭,當(dāng)你使用ctrl+alt+h
后亭饵,使用向下或者向上箭頭休偶,選擇某個(gè)調(diào)用梁厉,然后按下f4
即可跳轉(zhuǎn)到源代碼。
如何回到ctrl+alt+h視圖
這個(gè)真心被問(wèn)了好幾百遍,其實(shí)很簡(jiǎn)單词顾,當(dāng)你使用f4
跳轉(zhuǎn)到源代碼后八秃,直接使用alt+8
就可以跳回去了。就又可以繼續(xù)看下一個(gè)調(diào)用的地方了肉盹。
快速找到Controller方法
如果你的項(xiàng)目里有非常多的controller
昔驱,里面有非常多的http
或者resful
方法。如何快速找到這些方法呢上忍?這個(gè)時(shí)候骤肛,ctrl+alt+shift+n
就可以派上用場(chǎng)了。
比如說(shuō)窍蓝,你依稀記得入賬單相關(guān)的接口腋颠,都有個(gè)bill
的url路徑,那么使用ctrl+alt+shift+n
后吓笙,直接輸入/bill
即可淑玫。
當(dāng)你在成千上萬(wàn)的Controller
里尋找方法時(shí),這一招就可以大大提高效率面睛。
了解項(xiàng)目關(guān)鍵業(yè)務(wù)流程方法的利器-bookmark
在一些創(chuàng)業(yè)公司里絮蒿,很多核心的模塊都是放置在同一個(gè)項(xiàng)目里的。比如說(shuō)叁鉴,訂單相關(guān)的接口土涝,支付相關(guān)的接口,商品相關(guān)的接口幌墓。這個(gè)時(shí)候回铛,你可以將這些關(guān)鍵業(yè)務(wù)方法,使用bookmark
統(tǒng)一放置到某個(gè)地方克锣,方便你閱讀茵肃。
那么如何使用快捷鍵來(lái)達(dá)到上面的效果呢?
public class TestService {
public void test1() {
System.out.println("aa");
}
public void test2() {
test1();
}
public void test3() {
test1();
test1();
}
}
比如像上面的方法袭祟,我想將test1()
方法放置到bookmark
里验残,可以通過(guò)如下操作來(lái)完成:
1、使用ctrl+f12
,列出該類的所有方法巾乳,然后輸入test1
您没,將光標(biāo)定位在test1
上;
2胆绊、按下f11
,將test1()
加入到bookmark
氨鹏;
3、按下shift+f11
压状,將bookmark
列表彈出來(lái);
4仆抵、按下ctrl+enter
修改bookmark
名字跟继。
只留下一個(gè)tab
這個(gè)是我目前正在用的,就是整個(gè)工程里面镣丑,只有一個(gè)代碼tab舔糖。也即是說(shuō),無(wú)論你打開多少個(gè)文件莺匠,都是在同一個(gè)tab里面顯示金吗。如果這樣設(shè)置了,有些網(wǎng)友可能會(huì)問(wèn),我想看看我最近操作哪些類了趣竣,怎么看摇庙? 可以直接使用ctrl+e
來(lái)顯示最近操作的文件。
我是比較推薦只是保留一個(gè)代碼tab的遥缕,非常簡(jiǎn)潔跟匆。如果每打開一個(gè)文件,就是一個(gè)新的tab通砍,很快你就會(huì)亂掉玛臂,而且還得關(guān)閉部分tab。
可以通過(guò)下面的方式來(lái)設(shè)置成用一個(gè)tab顯示代碼封孙。按下ctrl+shif+a
,然后輸入Editor Tabs
迹冤,然后回車進(jìn)入編輯頁(yè)面。
然后在Placement
那里,選擇None
如何閱讀又長(zhǎng)又臭的代碼
由于歷史原因虎忌,項(xiàng)目里總會(huì)存在那種無(wú)法理解的泡徙,又長(zhǎng)又臭的業(yè)務(wù)代碼。閱讀這種代碼膜蠢,簡(jiǎn)直就是一種煎熬堪藐。但是在IntellIJ IDEA
里,只要使用5個(gè)小技巧挑围,便可大大提高閱讀質(zhì)量和速度礁竞。
創(chuàng)建任意代碼折疊塊
像上面的for循環(huán),我想直接將其折疊起來(lái)杉辙,因?yàn)榇a太長(zhǎng)的時(shí)候模捂,使用折疊塊,可以幫助你快速理清代碼的主脈絡(luò)蜘矢。
可以將光標(biāo)定位在for循環(huán)的左大括號(hào)里狂男,然后使用ctrl+shift+.
即可。
如果你想讓這個(gè)折疊快消失品腹,直接使用ctrl
加上一個(gè)+
即可岖食。
大括號(hào)匹配
這個(gè)也非常有用,因?yàn)榇a太長(zhǎng)舞吭,某個(gè)for循環(huán)泡垃,可能已經(jīng)撐滿整個(gè)屏幕了析珊。這個(gè)時(shí)候,找到某個(gè)大括號(hào)對(duì)應(yīng)的另外一邊就很費(fèi)勁兔毙。你可以將光標(biāo)定位在某個(gè)大括號(hào)一邊,然后使用ctrl+]
或者ctrl+[
來(lái)回定位即可兄春。
ctrl+shift+f7結(jié)合f3
ctrl+shift+f7
可以高亮某個(gè)變量澎剥,而且隨著鼠標(biāo)的移動(dòng),這個(gè)高亮是不會(huì)消失的(這個(gè)很重要
)赶舆。然后使用f3
找到下一個(gè)使用該變量的地方哑姚。
使用ctrl+shift+i
這個(gè)也是閱讀長(zhǎng)段代碼的法寶,當(dāng)你閱讀的代碼很長(zhǎng)的時(shí)候芜茵,突然想看代碼里某個(gè)類的定義叙量,那么直接使用ctrl+shift+i
,就可以在當(dāng)前類里再?gòu)棾鲆粋€(gè)窗口出來(lái)。比如說(shuō):
在這個(gè)代碼塊里九串,你想看看TestTemp
類的定義绞佩,那么將光標(biāo)定位在TestTemp
上,然后直接使用ctrl+shift+i
猪钮,就會(huì)彈出如下的窗口品山。
按下esc
,可以關(guān)閉這個(gè)窗口烤低。
使用alt+f7
這個(gè)我在上面已經(jīng)介紹過(guò)了肘交。可以列出變量在哪些地方被使用了扑馁。
結(jié)合這5個(gè)技巧涯呻,相信可以大大提高長(zhǎng)段代碼的閱讀效率。
跳到父類接口
我們經(jīng)常會(huì)定義一個(gè)service
接口腻要,比如說(shuō)UserService
,然后使用一個(gè)UserServiceImpl
類去實(shí)現(xiàn)UserService
里面的接口复罐。
public interface UserService {
void test1();
}
public class UserServiceImpl implements UserService {
@Override
public void test1() {
}
}
那么在UserServiceImpl
里的test1()
方法上,如何跳轉(zhuǎn)到UserService
的test1()
,直接使用ctrl+u
即可雄家。
后悔藥
如果修改了部分代碼市栗,突然覺(jué)得不合適,使用ctrl+z
回滾掉后咳短。突然又覺(jué)得剛才的修改是可以的填帽。那你可以使用ctr+shift+z
再次恢復(fù)你剛才修改的內(nèi)容。
切換皮膚最快的方式
可以直接使用ctrl
,然后加上一個(gè)`,就可以立刻彈出如下界面:
選擇Color Scheme
咙好,然后回車篡腌,就可以彈出修改皮膚的窗口。