Intellij IDEA神器那些讓人愛不釋手的小技巧
概述
在2018年5月6日寫了一篇介紹IntellIJ IDEA的文章,Intellij IDEA神器居然還有這些小技巧,主要是列出一些平時大家可能沒用過或者沒怎麼用,但是又非常好用的IntellIJ IDEA
小技巧。由於篇幅原因,只是列出了一小部分,那麼接下來的這篇文章,會繼續補充一些IntellIJ IDEA
的小技巧。
別輕易自定義快捷鍵
有蠻多操作,IntellIJ IDEA
並沒有給我們設定預設快捷鍵,需要使用者自己去定義快捷鍵。比如說:
- Rebuild Project
- Compare With Branch
為了能在IntellIJ IDEA
裡進行無滑鼠程式設計
- 經常會出現快捷鍵與其他應用的快捷鍵衝突的情況;
- 自定義太多快捷鍵了,你也不太好記住;
- 使用其他同事的IDEA時(比如說幫忙定位問題),你自定義的快捷鍵沒法用。
其實在IntellIJ IDEA
裡的每個操作,都可以看出一個action
。我們可以使用ctrl+shift+a
來輸入我們要使用的操作。比如說,上面提到的Rebuild Project
。你可以先使用ctrl+shift+a
快捷鍵,然後輸入Rebuild Project
並回車,即可執行你要的操作。
對我自己來說,除了基礎的快捷鍵,ctrl+shift+a
是我用最頻繁的快捷鍵了。
使用ctrl+alt+h要小心
ctrl+alt+h
非常好用,但是有個坑,當同一個方法裡,呼叫某個方法多次的時候,比如說下面的程式碼:
public class TestService {
public void test1() {
System.out.println("aa");
}
public void test2() {
test1();
}
public void test3() {
test1();
//無數業務操作後,再次電影test1()方法
test1();
}
}
如果我們想知道有哪些地方呼叫了test1()
方法,使用ctrl+alt+h
無法正確列出來的。因為ctrl+alt+h
只能告訴你呼叫的層次。
ctrl+alt+h
只是會在某個隱蔽的地方,告訴你,test3()
方法呼叫了test1()
方法兩次。這樣就很容易坑到開發者,因為大部分人可能不太注意後面的呼叫次數,導致改bug
的時候,以為全部都改了呢?
如果你想精確的列出到底哪些地方呼叫了test1()
方法,你需要使用alt+f7
這個快捷鍵。
尤其是我們在閱讀極其複雜的業務程式碼時,使用alt+f7
就非常合適。
當然alt+f7
也可以作用在變數上,列出某個類裡,哪些地方使用了該變數。
ctrl+alt+h被問的最多的兩個問題
經常有同事和網友問我。
Sam哥,使用ctrl+alt+h怎麼跳轉到原始碼,又如何重新回到ctrl+alt+h對應的視圖裡面。
調轉到原始碼
其實很簡單,當你使用ctrl+alt+h
後,使用向下或者向上箭頭,選擇某個呼叫,然後按下f4
即可跳轉到原始碼。
如何回到ctrl+alt+h檢視
這個真心被問了好幾百遍,其實很簡單,當你使用f4
跳轉到原始碼後,直接使用alt+8
就可以跳回去了。就又可以繼續看下一個呼叫的地方了。
快速找到Controller方法
如果你的專案裡有非常多的controller
,裡面有非常多的http
或者resful
方法。如何快速找到這些方法呢?這個時候,ctrl+alt+shift+n
就可以派上用場了。
比如說,你依稀記得入賬單相關的介面,都有個bill
的url路徑,那麼使用ctrl+alt+shift+n
後,直接輸入/bill
即可。
當你在成千上萬的Controller
裡尋找方法時,這一招就可以大大提高效率。
瞭解專案關鍵業務流程方法的利器-bookmark
在一些創業公司裡,很多核心的模組都是放置在同一個專案裡的。比如說,訂單相關的介面,支付相關的介面,商品相關的介面。這個時候,你可以將這些關鍵業務方法,使用bookmark
統一放置到某個地方,方便你閱讀。
那麼如何使用快捷鍵來達到上面的效果呢?
public class TestService {
public void test1() {
System.out.println("aa");
}
public void test2() {
test1();
}
public void test3() {
test1();
test1();
}
}
比如像上面的方法,我想將test1()
方法放置到bookmark
裡,可以通過如下操作來完成:
1、使用ctrl+f12
,列出該類的所有方法,然後輸入test1
,將游標定位在test1
上;
2、按下f11
,將test1()
加入到bookmark
;
3、按下shift+f11
,將bookmark
列表彈出來;
4、按下ctrl+enter
修改bookmark
名字。
只留下一個tab
這個是我目前正在用的,就是整個工程裡面,只有一個程式碼tab。也即是說,無論你開啟多少個檔案,都是在同一個tab裡面顯示。如果這樣設定了,有些網友可能會問,我想看看我最近操作哪些類了,怎麼看? 可以直接使用ctrl+e
來顯示最近操作的檔案。
我是比較推薦只是保留一個程式碼tab的,非常簡潔。如果每開啟一個檔案,就是一個新的tab,很快你就會亂掉,而且還得關閉部分tab。
可以通過下面的方式來設定成用一個tab顯示程式碼。按下ctrl+shif+a
,然後輸入Editor Tabs
,然後回車進入編輯頁面。
然後在Placement
那裡,選擇None
如何閱讀又長又臭的程式碼
由於歷史原因,專案裡總會存在那種無法理解的,又長又臭的業務程式碼。閱讀這種程式碼,簡直就是一種煎熬。但是在IntellIJ IDEA
裡,只要使用5個小技巧,便可大大提高閱讀質量和速度。
建立任意程式碼摺疊塊
像上面的for迴圈,我想直接將其摺疊起來,因為程式碼太長的時候,使用摺疊塊,可以幫助你快速理清程式碼的主脈絡。
可以將游標定位在for迴圈的左大括號裡,然後使用ctrl+shift+.
即可。
如果你想讓這個摺疊快消失,直接使用ctrl
加上一個+
即可。
大括號匹配
這個也非常有用,因為程式碼太長,某個for迴圈,可能已經撐滿整個螢幕了。這個時候,找到某個大括號對應的另外一邊就很費勁。你可以將游標定位在某個大括號一邊,然後使用ctrl+]
或者ctrl+[
來回定位即可。
ctrl+shift+f7結合f3
ctrl+shift+f7
可以高亮某個變數,而且隨著滑鼠的移動,這個高亮是不會消失的(這個很重要
)。然後使用f3
找到下一個使用該變數的地方。
使用ctrl+shift+i
這個也是閱讀長段程式碼的法寶,當你閱讀的程式碼很長的時候,突然想看程式碼裡某個類的定義,那麼直接使用ctrl+shift+i
,就可以在當前類裡再彈出一個窗口出來。比如說:
在這個程式碼塊裡,你想看看TestTemp
類的定義,那麼將游標定位在TestTemp
上,然後直接使用ctrl+shift+i
,就會彈出如下的視窗。
按下esc
,可以關閉這個視窗。
使用alt+f7
這個我在上面已經介紹過了。可以列出變數在哪些地方被使用了。
結合這5個技巧,相信可以大大提高長段程式碼的閱讀效率。
跳到父類介面
我們經常會定義一個service
介面,比如說UserService
,然後使用一個UserServiceImpl
類去實現UserService
裡面的介面。
public interface UserService {
void test1();
}
public class UserServiceImpl implements UserService {
@Override
public void test1() {
}
}
那麼在UserServiceImpl
裡的test1()
方法上,如何跳轉到UserService
的test1()
,直接使用ctrl+u
即可。
後悔藥
如果修改了部分程式碼,突然覺得不合適,使用ctrl+z
回滾掉後。突然又覺得剛才的修改是可以的。那你可以使用ctr+shift+z
再次恢復你剛才修改的內容。
切換面板最快的方式
可以直接使用ctrl
,然後加上一個`,就可以立刻彈出如下介面:
選擇Color Scheme
,然後回車,就可以彈出修改面板的視窗。
點贊
如果覺得文章寫的還行,請幫忙點一下贊哈,在如下位置。