1. 程式人生 > >Intellij IDEA神器那些讓人愛不釋手的小技巧

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()方法上,如何跳轉到UserServicetest1(),直接使用ctrl+u即可。

後悔藥

如果修改了部分程式碼,突然覺得不合適,使用ctrl+z回滾掉後。突然又覺得剛才的修改是可以的。那你可以使用ctr+shift+z再次恢復你剛才修改的內容。

切換面板最快的方式

可以直接使用ctrl,然後加上一個`,就可以立刻彈出如下介面:
這裡寫圖片描述

選擇Color Scheme,然後回車,就可以彈出修改面板的視窗。
這裡寫圖片描述

點贊

如果覺得文章寫的還行,請幫忙點一下贊哈,在如下位置。
這裡寫圖片描述