Intellij IDEA 神器那些讓人愛(ài)不釋手的小技巧

作者: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要小心

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è)快捷鍵。

使用ctrl+alt+h要小心

尤其是我們?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)到源代碼

調(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即可淑玫。

快速找到Controller方法

當(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è)地方克锣,方便你閱讀茵肃。

了解項(xiàng)目關(guān)鍵業(yè)務(wù)流程方法的利器-bookmark

那么如何使用快捷鍵來(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è)面。

只留下一個(gè)tab

然后在Placement那里,選擇None

只留下一個(gè)tab

如何閱讀又長(zhǎng)又臭的代碼


由于歷史原因虎忌,項(xiàng)目里總會(huì)存在那種無(wú)法理解的泡徙,又長(zhǎng)又臭的業(yè)務(wù)代碼。閱讀這種代碼膜蠢,簡(jiǎn)直就是一種煎熬堪藐。但是在IntellIJ IDEA里,只要使用5個(gè)小技巧挑围,便可大大提高閱讀質(zhì)量和速度礁竞。

創(chuàng)建任意代碼折疊塊


創(chuàng)建任意代碼折疊塊

像上面的for循環(huán),我想直接將其折疊起來(lái)杉辙,因?yàn)榇a太長(zhǎng)的時(shí)候模捂,使用折疊塊,可以幫助你快速理清代碼的主脈絡(luò)蜘矢。

可以將光標(biāo)定位在for循環(huán)的左大括號(hào)里狂男,然后使用ctrl+shift+. 即可。

創(chuàng)建任意代碼折疊塊

如果你想讓這個(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ō):

使用ctrl+shift+i

在這個(gè)代碼塊里九串,你想看看TestTemp類的定義绞佩,那么將光標(biāo)定位在TestTemp上,然后直接使用ctrl+shift+i猪钮,就會(huì)彈出如下的窗口品山。

使用ctrl+shift+i

按下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)到UserServicetest1(),直接使用ctrl+u即可雄家。


后悔藥


如果修改了部分代碼市栗,突然覺(jué)得不合適,使用ctrl+z回滾掉后咳短。突然又覺(jué)得剛才的修改是可以的填帽。那你可以使用ctr+shift+z再次恢復(fù)你剛才修改的內(nèi)容。


切換皮膚最快的方式


可以直接使用ctrl,然后加上一個(gè)`,就可以立刻彈出如下界面:

切換皮膚最快的方式

選擇Color Scheme咙好,然后回車篡腌,就可以彈出修改皮膚的窗口。

切換皮膚最快的方式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末勾效,一起剝皮案震驚了整個(gè)濱河市嘹悼,隨后出現(xiàn)的幾起案子叛甫,更是在濱河造成了極大的恐慌,老刑警劉巖杨伙,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件其监,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡限匣,警方通過(guò)查閱死者的電腦和手機(jī)抖苦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)米死,“玉大人锌历,你說(shuō)我怎么就攤上這事÷屯玻” “怎么了究西?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)物喷。 經(jīng)常有香客問(wèn)我卤材,道長(zhǎng),這世上最難降的妖魔是什么峦失? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任商膊,我火速辦了婚禮,結(jié)果婚禮上宠进,老公的妹妹穿的比我還像新娘晕拆。我一直安慰自己,他們只是感情好材蹬,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布实幕。 她就那樣靜靜地躺著,像睡著了一般堤器。 火紅的嫁衣襯著肌膚如雪昆庇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天闸溃,我揣著相機(jī)與錄音整吆,去河邊找鬼。 笑死辉川,一個(gè)胖子當(dāng)著我的面吹牛表蝙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播乓旗,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼府蛇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了屿愚?” 一聲冷哼從身側(cè)響起汇跨,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤务荆,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后穷遂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體函匕,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年蚪黑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了盅惜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡祠锣,死狀恐怖酷窥,靈堂內(nèi)的尸體忽然破棺而出咽安,到底是詐尸還是另有隱情伴网,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布妆棒,位于F島的核電站澡腾,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏糕珊。R本人自食惡果不足惜动分,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望红选。 院中可真熱鬧澜公,春花似錦、人聲如沸喇肋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蝶防。三九已至甚侣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間间学,已是汗流浹背殷费。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留低葫,地道東北人详羡。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像嘿悬,于是被迫代替她去往敵國(guó)和親殷绍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容