概述
在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
并回車,即可執行你要的操作。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SNykDMzYTN3YmNmJWZ3QjNzYzXxUzM1ATM0AzLcFTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
對我自己來說,除了基礎的快捷鍵,
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
,然後加上一個`,就可以立刻彈出如下界面: