天天看點

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​

​并回車,即可執行你要的操作。 

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

對我自己來說,除了基礎的快捷鍵,​

​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​

​隻能告訴你調用的層次。 

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

​ctrl+alt+h​

​隻是會在某個隐蔽的地方,告訴你,​

​test3()​

​方法調用了​

​test1()​

​方法兩次。這樣就很容易坑到開發者,因為大部分人可能不太注意後面的調用次數,導緻改​

​bug​

​的時候,以為全部都改了呢?如果你想精确的列出到底哪些地方調用了​

​test1()​

​方法,你需要使用​

​alt+f7​

​這個快捷鍵。

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

尤其是我們在閱讀極其複雜的業務代碼時,使用​

​alt+f7​

​就非常合适。當然​

​alt+f7​

​也可以作用在變量上,列出某個類裡,哪些地方使用了該變量。

ctrl+alt+h被問的最多的兩個問題

經常有同僚和網友問我。

Sam哥,使用ctrl+alt+h怎麼跳轉到源代碼,又如何重新回到ctrl+alt+h對應的視圖裡面。

調轉到源代碼

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

其實很簡單,當你使用​

​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​

​即可。

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

當你在成千上萬的​

​Controller​

​裡尋找方法時,這一招就可以大大提高效率。

了解項目關鍵業務流程方法的利器-bookmark

在一些創業公司裡,很多核心的子產品都是放置在同一個項目裡的。比如說,訂單相關的接口,支付相關的接口,商品相關的接口。這個時候,你可以将這些關鍵業務方法,使用​

​bookmark​

​統一放置到某個地方,友善你閱讀。

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

那麼如何使用快捷鍵來達到上面的效果呢?

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​

​,然後回車進入編輯頁面。 

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

然後在​

​Placement​

​那裡,選擇​

​None​

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

如何閱讀又長又臭的代碼

由于曆史原因,項目裡總會存在那種無法了解的,又長又臭的業務代碼。閱讀這種代碼,簡直就是一種煎熬。但是在​

​IntellIJ IDEA​

​裡,隻要使用5個小技巧,便可大大提高閱讀品質和速度。

建立任意代碼折疊塊

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

像上面的for循環,我想直接将其折疊起來,因為代碼太長的時候,使用折疊塊,可以幫助你快速理清代碼的主脈絡。

可以将光标定位在for循環的左大括号裡,然後使用​

​ctrl+shift+.​

​ 即可。 

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

如果你想讓這個折疊快消失,直接使用​

​ctrl​

​ 加上一個​

​+​

​即可。

大括号比對

這個也非常有用,因為代碼太長,某個for循環,可能已經撐滿整個螢幕了。這個時候,找到某個大括号對應的另外一邊就很費勁。你可以将光标定位在某個大括号一邊,然後使用​

​ctrl+]​

​或者​

​ctrl+[​

​來回定位即可。

ctrl+shift+f7結合f3

​ctrl+shift+f7​

​可以高亮某個變量,而且随着滑鼠的移動,這個高亮是不會消失的(​

​這個很重要​

​)。然後使用​

​f3​

​找到下一個使用該變量的地方。

使用ctrl+shift+i

這個也是閱讀長段代碼的法寶,當你閱讀的代碼很長的時候,突然想看代碼裡某個類的定義,那麼直接使用​

​ctrl+shift+i​

​,就可以在目前類裡再彈出一個視窗出來。比如說: 

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

在這個代碼塊裡,你想看看​

​TestTemp​

​類的定義,那麼将光标定位在​

​TestTemp​

​上,然後直接使用​

​ctrl+shift+i​

​,就會彈出如下的視窗。 

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

按下​

​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​

​,然後加上一個`,就可以立刻彈出如下界面: