IntelliJ IDEA 18 周歲,吐血推進(jìn)珍藏已久的必裝插件

IntelliJ IDEA 18 周歲,吐血推進(jìn)珍藏已久的必裝插件

IntelliJ IDEA是目前最好最強(qiáng)最智能的Java IDE,前幾天,他剛剛年滿18歲。

image

本文,給大家推薦幾款我私藏已久的,自己經(jīng)常使用的,可以提升代碼效率的插件。

1 IDEA插件簡介

常見的IDEA插件主要有如下幾類:

常用工具支持

Java日常開發(fā)需要接觸到很多常用的工具,為了便于使用,很多工具也有IDEA插件供開發(fā)使用,其中大部分已經(jīng)在IDEA中默認(rèn)集成了。例如maven、git、svn、tomcat、jetty、jrebel、Gradle等。

功能增強(qiáng)

還有些插件提供了一些IDE中不具有的功能,比如靜態(tài)代碼掃描、代碼自動(dòng)生成等。

框架集成

集成框架主要是為了提供框架定制的代碼和配置的生成,以及快速的訪問框架提供的功能。例如集成Spring框架,Mybatis框架等。

UI定制化及優(yōu)化

UI定制化相關(guān)的插件主要提供一下個(gè)性化需求定制,例如修改編輯區(qū)的背景圖片插件、修改代碼顏色等。

其他編程語言支持

IDEA主要支持Java,為了使用其他語言,可以使用一些支持其他語言的插件,通過這些插件可以實(shí)現(xiàn)語法分析,配色主題,代碼格式化和提示等功能。例如Go語言的支持的插件。

個(gè)人或者公司特殊需求

公司內(nèi)部插件

2 我的插件一覽

這里簡單介紹一些筆者日常開發(fā)中使用到的插件。 以下是我的IDEA中自己安裝的插件列表。

這些插件都是我經(jīng)過很長時(shí)間的使用之后最終保留下來的,都是值得安裝的一些插件。其中被我打碼的就是公司內(nèi)部插件。

image

3 IDEA插件安裝

IDEA的插件安裝非常簡單,對(duì)于很多插件來說,只要你知道插件的名字就可以在IDEA里面直接安裝。

Preferences—>Plugins—>查找所需插件—>Install

或者

Preferences—>Plugins—>Install plug from disk —>選擇下載好的插件安裝

安裝之后重啟IDEA即可生效

IDEA插件倉庫

IntelliJ IDEA激發(fā)了許多Java開發(fā)人員編寫插件, IntelliJ IDEA Plugins 中目前包含3000+個(gè)插件并且還在不斷增長。

IDEA插件倉庫地址呢:

https://plugins.jetbrains.com/?idea

image

4 基本功能

作者目前使用的IntelliJ IDEA版本是專業(yè)版2018.2.4(Ultimate Edition)

image

很多插件中提供的功能在這個(gè)版本中都已經(jīng)集成進(jìn)來了,這里簡單說幾個(gè)可能比較常用的,這幾種功能就無需加裝插件了。

1背景圖片

目前,IDEA支持設(shè)置背景圖片。這對(duì)于廣大程序員來說無疑是個(gè)好功能。整日對(duì)著枯燥的代碼實(shí)在是會(huì)讓人疲乏。要是可以設(shè)置一張美女圖片的話。。。

設(shè)置方法

Ctrl+Shift+A(或者h(yuǎn)elp -> find action)調(diào)用彈窗后輸入Set Background Image

image

在里面設(shè)定要設(shè)置為Image的圖片,透明度調(diào)到15左右,保存即可。

image

效果如下

image

2內(nèi)置terminal

目前IntelliJ IDEA已經(jīng)有一個(gè)內(nèi)置的terminal工具,可以方便的使用shell命令。

image

3內(nèi)置support

目前很多新版本的IntelliJ IDEA中,已經(jīng)內(nèi)置了很多support插件,比如我們常用的markdown support 、UML support 以及 android support等。

image

PS:由于作者使用的是專業(yè)版,不知道社區(qū)版是否也會(huì)內(nèi)置這些插件,如果沒有內(nèi)置的話,讀者可以根據(jù)需要自行下載相關(guān)插件并安裝。

有了markdowm support插件以后,就可以直接預(yù)覽md語法的內(nèi)容了。

image

5 必備插件

接下來,開始介紹一些我比較常用的插件,這些插件可以大大提升開發(fā)效率。

1Maven Helper

目前,Java開發(fā)很多都在使用maven進(jìn)行項(xiàng)目管理和自動(dòng)構(gòu)建。

日常開發(fā)中,可能經(jīng)常會(huì)遇到j(luò)ar包沖突等問題,就需要通過查看maven依賴樹來查看依賴情況。這種方式不是很高效,這里推薦一個(gè)插件,安裝之后,直接打開pom文件,即可查看依賴數(shù),還能自動(dòng)分析是否存在jar包沖突。

一旦安裝了Maven Helper插件,只要打開pom文件,就可以打開該pom文件的Dependency Analyzer視圖(在文件打開之后,文件下面會(huì)多出這樣一個(gè)tab)。

image

進(jìn)入Dependency Analyzer視圖之后有三個(gè)查看選項(xiàng),分別是Conflicts(沖突)、All Dependencies as List(列表形式查看所有依賴)、All Dependencies as Tree(樹結(jié)構(gòu)查看所有依賴)。并且這個(gè)頁面還支持搜索。

2FindBugs-IDEA

FindBugs很多人都并不陌生,Eclipse中有插件可以幫助查找代碼中隱藏的bug,IDEA中也有這款插件。

使用方法很簡單,就是可以對(duì)多種級(jí)別的內(nèi)容進(jìn)行finbugs

image

分析完之后會(huì)有一個(gè)視圖進(jìn)行提示,詳細(xì)的說明是哪種問題。

image

按照提示解決完問題之后再執(zhí)行findbug查看情況即可。

3阿里巴巴代碼規(guī)約檢測(cè)

2017年10月14日杭州云棲大會(huì),Java代碼規(guī)約掃描插件全球首發(fā)儀式正式啟動(dòng),規(guī)范正式以插件形式公開走向業(yè)界,引領(lǐng)Java語言的規(guī)范之路。

Java代碼規(guī)約掃描插件以今年年初發(fā)布的《阿里巴巴Java開發(fā)規(guī)約》為標(biāo)準(zhǔn),作為Eclipse、IDEA的插件形式存在,檢測(cè)JAVA代碼中存在不規(guī)范得位置然后給予提示。規(guī)約插件是采用kotlin語言開發(fā)的,感興趣的同學(xué)可以去開看插件源碼。

阿里巴巴規(guī)約插件包含三個(gè)子菜單:編碼規(guī)約掃描、關(guān)閉試試檢測(cè)功能。

image

并且,該插件支持在編寫代碼的同時(shí)進(jìn)行提示,

image

這款插件,真的可以很大程度上提升代碼質(zhì)量,一定要安裝。

4GsonFormat

Java開發(fā)中,經(jīng)常有把json格式的內(nèi)容轉(zhuǎn)成Object的需求,比如項(xiàng)目開始時(shí),合作方給你提供了一個(gè)json格式request/response,這時(shí)候你就需要將其定義成一個(gè)Java類,GsonFormat這款插件可以實(shí)現(xiàn)該功能。

image

5Lombok plugin

在Java中,我們經(jīng)常會(huì)定義很多JavaBean,這些Bean需要有g(shù)etter、setter、toString、equals和hashCode等方法。

通常情況下,我們可以使用IDEA的快捷鍵生成這些代碼,但是自動(dòng)生成的代碼后,如果bean中的屬性一旦有修改,需要重新生成,給代碼維護(hù)增加了一定的負(fù)擔(dān)。

有一款很好的插件,可以幫助開發(fā)者節(jié)省這部分工作。那就是Lombok。

只要在IDEA中安裝了該插件,只需要在JavaBean中添加一行注解代碼,插件就會(huì)自動(dòng)幫我們生成getter、setter、toString、equals和hashCode等方法。

當(dāng)然,這些方法不止在IDE中的代碼調(diào)用中需要用到,在真正線上部署的時(shí)候也需要有,所以,還需要使用maven引入一個(gè)lombok的包。

<dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.16.10</version></dependency>/**
 * @author Hollis
 */
public class HollisLab {

    public static void main(String[] args) {
        Wechat wechat = new Wechat();
        wechat.setId("Hollis");
        wechat.setDesc("每日更新Java技術(shù)文章");
        System.out.println(wechat);
    }
}

@Data
class Wechat {
    private String id;
    private String desc;
}

輸出結(jié)果:

Wechat(id=Hollis, desc=每日更新Java技術(shù)文章)

我們?cè)赪echat類上面添加了@Data注解,插件就自動(dòng)幫我們添加了getter/setter和toString方法。

6String Manipulation

字符串日常開發(fā)中經(jīng)常用到的,但是不同的字符串類型在不同的地方可能有一些不同的規(guī)則,比如類名要用駝峰形式、常量需要全部大寫等,有時(shí)候還需要進(jìn)行編碼解碼等。這里推薦一款強(qiáng)大的字符串轉(zhuǎn)換工具——String Manipulation。

它強(qiáng)大到什么程度,看下他的功能列表你就知道了:

image
  • 文本轉(zhuǎn)換操作

  • 切換樣式(camelCase, hyphen-lowercase, HYPHEN-UPPERCASE, snake_case, SCREAMING_SNAKE_CASE, dot.case, words lowercase, Words Capitalized, PascalCase)

  • 轉(zhuǎn)換為SCREAMING_SNAKE_CASE (或轉(zhuǎn)換為camelCase)

  • 轉(zhuǎn)換為 snake_case (或轉(zhuǎn)換為camelCase)

  • 轉(zhuǎn)換為dot.case (或轉(zhuǎn)換為camelCase)

  • 轉(zhuǎn)換為hyphen-case (或轉(zhuǎn)換為camelCase)

  • 轉(zhuǎn)換為hyphen-case (或轉(zhuǎn)換為snake_case)

  • 轉(zhuǎn)換為camelCase (或轉(zhuǎn)換為Words)

  • 轉(zhuǎn)換為camelCase (或轉(zhuǎn)換為lowercase words)

  • 轉(zhuǎn)換為PascalCase (或轉(zhuǎn)換為camelCase)

  • 選定文本大寫

  • 樣式反轉(zhuǎn)

  • Un/Escape

  • Un/Escape 選中的 java 文本

  • Un/Escape 選中的 javascript 文本

  • Un/Escape 選中的 HTML 文本

  • Un/Escape 選中的 XML 文本

  • Un/Escape 選中的 SQL 文本

  • Un/Escape 選中的 PHP 文本

  • 將 diacritics(accents) 轉(zhuǎn)換為 ASCII

  • 將非ASCII 轉(zhuǎn)換為轉(zhuǎn)義的Unicode

  • 將轉(zhuǎn)義的Unicode轉(zhuǎn)換為字符串

  • Encode/Decode

  • Encode 選中的文本為 MD5 Hex16

  • De/Encode 選中的文本為 URL

  • De/Encode 選中的文本為 Base64

  • 遞增/遞減

  • 遞增/遞減所有找到的數(shù)字

  • 復(fù)制行并且遞增/遞減所有找到的數(shù)字

  • 創(chuàng)建序列:保持第一個(gè)數(shù)字,遞增替換所有其他數(shù)字

  • 遞增重復(fù)的數(shù)字

  • 按自然順序排序

  • 按行倒序

  • 按行隨機(jī)排序

  • 區(qū)分大小寫A-z排序

  • 區(qū)分大小寫z-A排序

  • 不區(qū)分大小寫A-Z排序

  • 不區(qū)分大小寫Z-A排序

  • 按行長度排序

  • 通過子選擇行排序:每行僅處理一個(gè)選擇/插入符號(hào)

  • 對(duì)齊

  • 通過選定的分隔將選定的文本格式化為列/表格

  • 將文本對(duì)齊為左/中/右

  • 過濾/刪除/移除

  • grep選定的文本,所有行不匹配輸入文字將被刪除。 (不能在列模式下工作)

  • 移除選定的文本

  • 移除選定文本中的所有空格

  • 刪除選定文本中的所有空格

  • 刪除重復(fù)的行

  • 只保留重復(fù)的行

  • 刪除空行

  • 刪除所有換行符

  • 其他

  • 交換字符/選擇/線/標(biāo)記

  • 切換文件路徑分隔符:Windows < – > UNIX

安裝好插件后,選中需要處理的內(nèi)容后,按快捷鍵Alt+m,即可彈出工具功能列表。

很好很強(qiáng)大的一款字符串處理工具。

<article class="" style="margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">7.ignore

目前很多開發(fā)都在使用git做版本控制工具,但是有些時(shí)候有些代碼我們是不想提到到我們的代碼倉庫中的,比如ide自動(dòng)生成的一些配置文件,或者是我們打包生成的一些jar文件等,這時(shí)候就需要編寫一個(gè).ignore文件,來排除那些不想被版本管理的文件。

這里推薦一個(gè)好用的插件.ignore,他可以幫我們方便的生成各種ignore文件。

安裝插件后,選中項(xiàng)目,右鍵新建的時(shí)候,會(huì)多出一個(gè).ignore文件的選項(xiàng),可以通過這個(gè)選項(xiàng)創(chuàng)建ignore文件。

image

在彈出的對(duì)話框中,可以自動(dòng)幫我們生成一份.ignore文件,這里我們讓其幫忙自動(dòng)排除所有和idea有關(guān)的文件。

image

8Mybatis plugin

目前ORM框架中,Mybatis非常受歡迎。但是,同時(shí)給很多開發(fā)帶來困擾的就是Mybatis需要很多xml的配置文件,有的時(shí)候很難去進(jìn)行修改。

這里推薦一款神器,可以讓你像編輯java代碼一樣編輯mybatis的文件。

Intellij Idea Mybatis插件主要功能:

  • 提供Mapper接口與配置文件中對(duì)應(yīng)SQL的導(dǎo)航

  • 編輯XML文件時(shí)自動(dòng)補(bǔ)全

  • 根據(jù)Mapper接口, 使用快捷鍵生成xml文件及SQL標(biāo)簽

  • ResultMap中的property支持自動(dòng)補(bǔ)全,支持級(jí)聯(lián)(屬性A.屬性B.屬性C)

  • 快捷鍵生成@Param注解

  • XML中編輯SQL時(shí), 括號(hào)自動(dòng)補(bǔ)全

  • XML中編輯SQL時(shí), 支持參數(shù)自動(dòng)補(bǔ)全(基于@Param注解識(shí)別參數(shù))

  • 自動(dòng)檢查Mapper XML文件中ID沖突

  • 自動(dòng)檢查Mapper XML文件中錯(cuò)誤的屬性值

  • 支持Find Usage

  • 支持重構(gòu)從命名

  • 支持別名

  • 自動(dòng)生成ResultMap屬性

image
image

(圖源:https://www.oschina.net/p/intellij-mybatis-plugin

但是這款插件是收費(fèi)的,但是不影響他確實(shí)是一個(gè)很實(shí)用,可以很大程度上提升開發(fā)效率的插件。讀者可以考慮使用Free Mybatis plugin(這款插件我沒用過,具體是否好用有待考證)。

9Key promoter X

對(duì)于很多剛剛開始使用IDEA的開發(fā)者來說,最苦惱的就是不知道快捷鍵操作是什么。

使用IDEA,如果所有操作都使用鼠標(biāo),那么說明你還不是一個(gè)合格的程序員。

這里推薦一款可以進(jìn)行快捷鍵提示的插件Key promoter X。

Key Promoter X 是一個(gè)提示插件,當(dāng)你在IDEA里面使用鼠標(biāo)的時(shí)候,如果這個(gè)鼠標(biāo)操作是能夠用快捷鍵替代的,那么Key Promoter X會(huì)彈出一個(gè)提示框,告知你這個(gè)鼠標(biāo)操作可以用什么快捷鍵替代。

當(dāng)我使用鼠標(biāo)查看一個(gè)方法都被哪些類使用的時(shí)候,就會(huì)提示:

image

記住這個(gè)快捷鍵以后,就可以使用快捷鍵代替鼠標(biāo)啦。

10AceJump

前面介紹了一款可以通過使用快捷鍵來代替鼠標(biāo)操作的插件,這里再介紹一款可以徹底擺脫鼠標(biāo)的插件,即AceJump

AceJump允許您快速將光標(biāo)導(dǎo)航到編輯器中可見的任何位置,只需點(diǎn)擊“ctrl +;”,然后輸入一個(gè)你想要跳轉(zhuǎn)到的字符,之后鍵入匹配的字符就跳轉(zhuǎn)到你想要挑戰(zhàn)的地方了。

image

如以上代碼,我想在這個(gè)類中,跳轉(zhuǎn)到println那個(gè)位置,只需要按下快捷鍵:“ctrl +;”,然后輸入println,即可定位到目標(biāo)位置。

上圖中,我輸入了pri三個(gè)字母后,頁面提示三個(gè)可選項(xiàng),分別用字母F、J、G標(biāo)注,這時(shí)候只需要按下對(duì)應(yīng)字母,即可快速定位到指定位置,是不是很方便。

11activate-power-mode

最后,介紹一款程序員很好的在妹子面前裝X的插件——activate-power-mode 。

安裝了這款插件之后,你寫代碼的時(shí)候,就會(huì)附加一些狂拽炫酷屌炸天的效果:

image

6 總結(jié)

本文一共介紹了11款可以提升程序員開發(fā)效率、提升代碼質(zhì)量、提升編碼心情的軟件。歡迎大家安裝嘗試一下。

Hollis公眾號(hào)的文章已經(jīng)授權(quán)<維權(quán)騎士>進(jìn)行原創(chuàng)維權(quán),為避免不必要的版權(quán)追責(zé)問題,轉(zhuǎn)載請(qǐng)注明出處!

閱讀原文

建了個(gè)程序員單身交流群:有需要的可以加一下。

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • IntelliJ IDEA是目前最好最強(qiáng)最智能的Java IDE,默認(rèn)已經(jīng)集成了幾乎所有主流的開發(fā)工具和框架。在這...
    nextbang閱讀 4,097評(píng)論 0 39
  • 去年看了一部動(dòng)畫片《記憶中的瑪妮》。結(jié)局深深地打動(dòng)了我,因?yàn)樽詈笠荒?,告訴我,愛,從未離開。 "我一直也覺得自己不...
    BelovedNutan閱讀 529評(píng)論 0 0
  • 這就是一篇隨筆,沒有嚴(yán)謹(jǐn)?shù)慕Y(jié)構(gòu),對(duì)于我看這本小說的感受,通通寫進(jìn)來。寫的時(shí)候小說已結(jié)束閱讀一周,記憶力有限,如果對(duì)...
    太陽娃娃閱讀 775評(píng)論 0 1

友情鏈接更多精彩內(nèi)容