前言
工欲善其事必先利其器,用 IntelliJ IDEA 开发几年了,它带来工作效率上的提升是很显著的。本文分享一些好用的插件和经验。
插件
界面
-
activate-power-mode
酷炫的代码编辑效果,玩玩就行了。
同类产品: activate-power-mode-x 、 Power Mode II 、 Power Mode - Zeranthium 。
-
Archive Browser
直接在项目视图中展开压缩包,无需手动用压缩软件打开看,支持大部分压缩格式。
-
Atom Material Icons
从 Material Theme UI 插件中分离出来的图标插件。
缺点:不能单独禁用某一类图标,和其他图标插件会产生冲突。
-
Awesome Console
使控制台和终端输出的文件名和链接可以跳转。
不支持反斜杠路径,文件新创建后需要重启 IDE 才能高亮。
-
Background Image Plus
众多 背景图插件 中,目前这个插件算是最好用的,支持随机、定时、透明度。
新版 IDE 已支持右键图片设置为背景( Set Background Image ),可以为其添加快捷键。
-
Base64 image encoder
图片一键转为 Base64 DataUrl ,小图可用,稍大点( 几百 K )就会把整个 IDE 卡住。
-
Chinese (Simplified) Language Pack / 中文语言包
官方提供的汉化支持,看个人喜好决定是否汉化。
-
CodeGlance
在滚动条边上显示代码文件内容缩略图,可以快速定位到指定位置。玩玩就行了。
-
Color Highlighter
颜色代码直接渲染为背景色,更直观。
-
Extra Icons
也是一个图标插件。
-
GlassCode (For Windows)
IDE 背景透明化,同时保持代码清晰明亮。一般用不上。
-
Grep Console
主要用于日志输出颜色控制( 但是 error 日志打印只有首行有颜色 )。
配色清单:
日志级别 前景色 .*VERBOSE.* BBBBBB .*DEBUG.* 0070BB .*INFO.* 48BB31 .*WARN.* BBBB23 .*ERROR.* FF6464 .*ASSERT.* 8F0005 -
Icon Viewer 2
项目视图中图片文件直接在图标上预览,无需打开文件。
如果启用了 Atom Material Icons 插件,则需要取消勾选
Enable File Icons
。如果启用了 Extra Icons 插件,则需要禁用 SVG 文件的图标。
-
Indent Rainbow
给代码缩进着色,可以区分出错误的缩进。( 看多了还是有点刺眼 )
-
Material Theme UI
主题插件,用于配置 IDEA 的 UI 组件 的显示效果。刚开始用可能会比较刺眼,一个月使用下来就习惯了。
我的配置方案:
Settings -> Appearance & Behavior -> Material Theme
当然也可以直接点击状态栏的小图标直接进入( 全局配置 )。
配置项 Selected Theme ( 基础模版 ) Material Oceanic Compact 勾选 StatusBar
/Table Cells
/Dropdown Lists
/Menus
Project View Sidebar Height ( 项目视图行高 )设置为 22
Components 取消按钮大写:取消勾选 Uppercase buttons
编辑区的背景色 改成和主体背景色一样的 #263238
-
Rainbow Brackets
彩虹颜色的括号,配对括号相同颜色,防止括号错乱。
-
Sexy Editor
可以在编辑器自定义位置显示插图,可以和 背景图插件 共存。
Java 开发
-
Alibaba Java Coding Guidelines
基于 阿里巴巴 Java 开发手册 的 Java 代码规约扫描插件 。对于不符合规范的代码会提示 推荐用法 或 快捷修复 ,有代码洁癖的小伙伴赶紧去用吧。
-
Class File Indexer
为 class 文件建立索引, class 文件可直接进行代码跳转而无需下载源码。
-
Debugger Enhancer
断点增强,可强制方法返回指定的值或者异常。
-
Java Visualizer
调试的时候可视化显示调用栈和对象。
-
jclasslib Bytecode Viewer
一个可以查看源码对应字节码的插件( 参考 )。
相关: 一键查看 Java 字节码以及其他类信息
-
JRebel and XRebel for IntelliJ
Java 热部署插件 ,大部分场景下修改了代码只要
Ctrl + B
编译下代码就即时生效了,无需频繁重启项目。比起 SpringBoot 的 devtools 好用多了。 另外,不建议开启自动编译,很消耗性能。安装教程 破解教程
-
Lombok
提供对 Lombok 的支持。
新版 IDE 已内置集成。
-
Maven Helper
用于 Maven 依赖冲突检查( 参考 )。
-
Maven Version in Project View
在项目视图中直接显示每个 Maven 子项目的版本号。
只在项目打开的时候读取,修改后不会实时刷新。
-
MyBatis plugin提供对 MyBatis 的支持,支持 Mapper.java 和 Mapper.xml 之间相互的代码跳转,根据 Mapper.java 自动生成对应的 Mapper.xml 和 SQL 等功能。这个插件是收费的,破解方法参考 这里 ,破解版虽然能用,但是启动的时候还是会花几十秒联网校验,导致 IDEA 启动很慢。
原插件免费了,新插件迁移到 MinBatis ,还是因为收费问题被喷得不行。
-
MyBatisCodeHelperPro ( 功能演示 )
应该是目前同类中最强大的一款插件( 收费 ),提供代码跳转、代码检测、 SQL 自动补全、以及非常丰富的代码生成器。
这个 版本 可重置试用。
免费版应该够用了,关于代码生成就看个人习惯了,用得不顺手就很鸡肋。
-
MyBatis Log Plugin
用于将 MyBatis 输出的日志转为实际执行的具体 SQL 。
-
MyBatisX
MyBatis plugin 的免费替代品,功能相对少一点。
可以通过图标识别出哪些 Mapper 没有创建对应的 XML 。
-
Package Search
官方提供的 Maven 和 Gradle 依赖版本管理工具( 参考 )。
新版 IDE 已内置集成。
-
Restful Fast Request
漂亮的接口调试工具。
-
RestfulToolkit通过快捷键
Ctrl + \
快速检索项目中定义的 @RequestMapping ,支持模糊搜索。插件作者应该不会再维护了,可以考虑切换到 RestfulTool 。
另外,此类插件都无法识别子类覆写注解。
-
SequenceDiagram
生成方法的执行时序图。
-
Swagger
提供对 Swagger 的支持。
前端开发
-
EJS
提供对 EJS 模板引擎 的支持。
-
element
提供对 饿了么 Element UI 组件库 的支持。
-
ESLint
提供 ESLint 的支持,用于前端代码的检查和快速修复。
新版 IDE 已内置集成。
-
ESLint Restart Service Action
提供一个按钮用于重启 ESLint Service ,调试 ESLint 插件代码的时候很有用。
-
GraphQL
提供对 GraphQL 的支持。
-
Prettier
提供对 Prettier 的支持( 参考 ),支持丰富的语言以及大量的配置规则,适用于团队开发中统一代码风格,非前端项目照样能用。以前的版本需要自己设置格式化快捷键或者配合上面的 File Watchers 使用,新版已经支持保存时自动格式化了,但可配置项太少了。
设置自动格式化的文件类型:
{**/*,*}.{js,ts,jsx,tsx,json,md}
。 -
PostCSS
提供对 PostCSS 的支持。
-
React CSS Modules
提供对 CSS Modules 的支持。
-
TSReact
Typescript 语法的 React 片段。
-
Vue.js
提供对 Vue.js 的支持。
安卓开发
参考 IntelliJ IDEA 搭建安卓开发环境 。
插件开发
-
Plug-in DevKit Helper
plugin.xml 增强。
第三方语法支持
-
.env files support
提供对 .env 文件的支持。
File Types 增加
.env.*
。 -
.ignore
提供对 .ignore 文件的支持。
-
BashSupport
提供对 Bash 语言的支持,支持运行配置、语法高亮、改名重构、查看注释文档、语法检查、命令提示,最主要还是可以做 代码跳转 。
2020.3+
需要使用收费版 BashSupport Pro 。 -
CMD Support
此类插件( Batch Scripts Support )基本就只支持 批处理 代码高亮。
-
CSV
提供对 CSV/TSV/PSV 文件的支持( 编辑器、语法验证、结构突出显示、自定义着色 )。
-
ExcelReader
右键打开 Excel 文件。
-
Ini
提供对 .ini 文件的支持。
-
Ideolog
日志文件高亮显示。
-
Markdown
默认集成的 Markdown 插件,除了 gitmoji 表情支持不完善,其他都够用了。
手动开启 PlantUML 和 Mermaid 扩展支持。
win10 下高分辨率设置了 显示缩放 会导致 Markdown 的预览效果页面 文字很模糊。
解决办法:使用 JB SDK Bintray Downloader 插件升级到最新的 JB SDK ( 参考 ),或者使用自己下载的 JDK ( 参考 )。
-
Makefile Language
-
nginx Support
提供对 Nginx 配置文件的支持,支持 语法高亮 和 语法提示 。
-
PDF Viewer
直接打开 PDF 。
-
PlantUML integration
PlantUML 图表绘制。
PowerShell
-
Requirements
-
Toml
提供对 .toml 文件的支持。
-
Yet another emoji support
监控与统计
-
Battery Status
在 IDEA 状态栏 显示 电池状态 。
-
CPU Usage Indicator
在 IDEA 状态栏 显示 CPU 使用率 。
-
WakaTime
统计编码的时间( 工作量 )。
需要注册获取一个 api key 。
其他插件
-
Action Tracker
操作录制,不怎么实用。
-
All Format
支持多种格式数据的转换工具,快捷键
Alt + F
。 -
any-rule
常用正则大全 。
源文件 访问不顺畅可以改为 加速地址 。
-
Chinese Converter
中文简体/繁体转换。
-
Code Screenshots
选中代码进行截图。
-
CommonTools
提供一些工具的常用命令和快捷操作:
Flutter、ADB、Git, HttpClient and dart、java code generator
-
File Path Autocomplete
代码中写文件路径时自动补全,像在终端中输入路径一样。
-
File Watchers
用于监听文件变化,比如可以用于 代码保存的时候自动格式化 。
-
GIdeaBrowser
内嵌浏览器。
-
IDEA Mind Map
思维导图。
-
IDEA Resolve Symlinks
项目中用到 符号链接 的时候,从 符号链接 打开和从源文件打开会打开两个文件选项卡,而这个插件可以解决这个问题。
-
Index Viewer
官方提供的查看 IDE 索引 的插件,虽然看不懂。
**View -> Tool Windows -> Indexes ( Indices ) **
-
IntelliJ IDEA Help
离线环境下也能打开 IDE 的帮助文档(
F1
),注意观察打开页面的域名。 -
JB SDK Bintray Downloader( 参考 )切换用于 IDEA 启动的 JVM 。
-
jsDelivr package search
从 jsDelivr 查询静态资源( NPM )并按指定格式插入。
-
Json Parser
Json 解析、格式化。
-
Key Promoter X
Key Promoter X 帮助你在工作时学习基本的键盘快捷键。当你在 IDE 内部的按钮上使用鼠标时, Key Promoter X 会显示你应该使用的键盘快捷键。这提供了一种简单的方法来学习如何用键盘按键代替繁琐的鼠标工作,并有助于过渡到更快的无鼠标开发。 Key Promoter X 通过工具窗口显示最近的鼠标操作,并直接给出对应的快捷键。对于那些没有快捷键的按钮, Key Promoter X 会直接提示你去创建一个。
-
Kinetic Mouse Scrolling
按住鼠标滚轮就可以像触摸板一样拖拽可滚动的窗口,操作横向滚动条更方便了。
-
LeetCode Editor
LeetCode 刷题。
-
Multirun
一次运行多个运行配置。
-
Naming Is Hard
新建项目或者模块的时候为你随机生成名称。
-
Network
HTTP 抓包,注意不支持 HTTPS 。
-
Presentation Assistant
类似 Key Promoter X ,反向显示当前使用的功能的快捷键,适合做演示。
-
Programmer Motivator: Chaoyue Yang
代码写累了,提醒你该休息了。
-
Proxy Toggle
通过按钮或快捷键切换 IDE 的 HTTP 代理 的启用状态。
-
Save Actions
可配置的代码保存操作,主要用途还是代码自动格式化。( 参考 )
-
String Manipulation
字符串格式转换工具,比如大小写,驼峰与下划线互转,自己试试就知道了。快捷键
Alt + M
。 -
ToolWindow Manager
自定义每个 Tool Window 的可见性。
-
Translation
翻译插件,对于英语渣渣来说很有用,看源码不用再切出去百度了。我设置的翻译快捷键是
Alt + Z
( 选择文本和弹窗都设置这个快捷键,可以两用 )。 -
UpperLowerCapitalize
大小写切换,
Alt + P
切换到全大写,Alt + L
切换到全小写。 -
UUID Generator
UUID 、 ULID 、 CUID 生成器。
-
who did it
目录树文件名后面像 Eclipse 一样显示 版本控制( Git / SVN ) 的最后修改人/时间,没必要还是不要开了,有点卡。
插件市场 上 5000+ 的插件稍微实用点的都列在上面了( 按名称排序 ),剩下还有一些 其他语言 、 框架 相关的插件自己去搜一下吧。低配电脑还是少装点没必要的插件以避免不必要的性能开销。
各种乱七八糟的插件实在是太多了( 看得头痛 ),本着不错过的原则我就花了几天时间人肉暴力扫描了
全部( 大部分 )插件,才有了上面的这个插件清单,以后不会再有第三次了,就算维护也只会添加一些新出现的爆款插件或者我做特定领域开发时发现的宝藏插件。
目前插件生态整体还算是良好的,有人愿意为那些很酷的想法写一个插件,也有人愿意为那些年久失修的插件再发行,一切都是为了使 IDE 功能更强大,使开发更便捷更智能。但随着插件越来越多问题就暴露出来了:
-
重复造轮子现象很严重
插件的目的是为了让 IDE 更好用,但发现很多人写插件是为了秀肌肉而秀肌肉。看到一个酷炫的功能就有人想做个类似的,有些甚至 fork 了源码稍微修改一点就发布成了一个新的插件。所以搜索结果可以看到一堆形如 xxx 、 xx x 、 xxx2 、 xxx3 、 xxx plus 、 xxx plus+ 、 xxx plus++ 这样的插件名,这就给用户造成了很大的困扰,究竟谁是原版?谁 fork 了谁?谁更好用?所谓 取别人的名字,让别人无名可用 在这里体现的淋漓尽致。
-
描述文档极其不规范
发布一个插件,好歹截图、按钮、快捷键都列一下,再不济也要描述下这个插件解决了什么问题,该怎么去使用。但现状就是很多插件( 包括我文中推荐的一些插件 )即使安装以后你也搞不清楚怎么用,看着没效果也分不清楚是不兼容还是压根做就很烂。和手机应用商店的坏风气一样,一个笼统性的标题不加描述或者夸大功能成分骗用户先下载下来用用再说。
-
插件发布门槛太低( 我没发布过,但看了一些垃圾插件应该是这样的 )
很多人像建 GitHub 仓库一样一时兴起就发布一个插件,发布完就不管了,久而久之就遗留下来一堆垃圾,所以插件市场看着插件数量是很多,但精品实在是没有多少。
大部分插件都是用爱发电的,即使收费估计也产生不了多少收益,这就造成了开发者很难投入大量的精力专门去维护和迭代一个插件,所以一个优秀的插件横空出世并更新了几次之后再也没有动静的现象还是很普遍的。
-
兼容性差
这几年插件 API 变化太频繁的,导致一堆不错的旧插件强制报废了, IDE 更新一个小版本就要重新去适配估计没几个人愿意。
其实上面这些问题是各种软件生态中都会遇到的,既想大量开发者免费开发又想要高品质本就是矛盾的。但不同的是, JetBrains 官方 是有自己下场开发特定领域的精品插件的,很多市场插件可以看作是 IDE 的实验室功能,它们的优点被集成到 IDE 的正式功能当中只是时间问题。希望官方能好好整顿下第三方插件提升市场的插件品质,同时能官方维护一个 精品
、 垃圾
的清单以提升用户的搜索体验( 评分和下载量的水分太大了 )。
设置
下述配置没有特殊说明均指全局配置而非项目配置。( 参考 )
-
设置 IDE 编码( 参考 )
idea(64).exe.vmoptions
从根源解决各种莫名其妙的乱码问题。
-Dfile.encoding=UTF-8
-
系统设置
Settings -> Appearance & Behavior -> System Settings
- 关闭 IDE 时不询问
-
Confirm before exiting the IDE
-
- 启动 IDE 时不打开工程
-
Reopen projects on startup
-
- 项目在新窗口中打开
-
New window
-
- 关闭 IDE 时不询问
-
Quick Lists
查看 Keymap 设置我们可以发现里面有很多的功能,不可能给它们全部设置快捷键。这时候就可以通过 quick list 把一些我们常用的功能整合在一起,然后设置一个快捷键来快速打开这个菜单面板,十分方便。
-
快捷键
Settings -> Keymap
我更习惯 eclipse 风格的快捷键。
检索关键字 快捷键 说明 GotoSuperMethod Ctrl + Shift + 鼠标左键
跳转到 父类定义 或 父类方法定义 GotoTypeDeclaration Ctrl + Alt + 鼠标左键
跳转到 对象 的 类型定义 Quick Lists Ctrl + Alt + Shift + Q
打开 Quick Lists 弹窗 Reload from Disk Alt + F5
项目视图从磁盘重新加载 RunSshConsoleAction Alt + S
打开 SSH 会话 Settings -> Build, Execution, Deployment -> Deployment 添加会话 Restart ESLint Service Ctrl + Alt + 逗号
重启 ESLint 服务 安装 ESLint Restart Service Action 插件 ReformatWithPrettierAction Ctrl + Shift + 逗号
使用 Prettier 格式化 Decrease Font Size Ctrl + Wheel down
减小字体大小 Increase Font Size Ctrl + Wheel up
增大字体大小 Reset Font Size Ctrl + NumPad-0
重置字体大小 Collapse [All] 自行查看默认建
折叠代码 Expand [All] 自行查看默认建
展开代码 -
编辑器设置
Settings -> Editor
-
光标可随意定位,默认:不超过行尾
General -> Virtual Space
-
After the end of line
-
-
文件末尾空行处理
General -> On Save
- 删除文件末尾多余的空行
-
Remove trailing blank lines at the end of saved files
-
- 确保文件最后一行是空行( 没有就插入一个 )
-
Ensure every saved file ends with a line break
-
- 删除文件末尾多余的空行
-
自动导包设置
General -> Auto Import
-
编辑代码时自动导包
-
Add unambiguous imports on the fly
-
-
编辑代码时优化导入的包 ( 参考 )
和撤销还原操作有冲突,体验并不好,最好还是保存时再优化。
-
Optimize imports on the fly
-
-
-
代码提示
General -> Code Completion
- 模糊搜索不区分大小写
- Match case
- 模糊搜索不区分大小写
-
编辑器选项卡
General -> Editor Tabs
- 为标签使用小字体
-
Use small font for labels
-
- 用星号标记已修改的标签
-
Mark modified (*)
-
- 在结尾打开新选项卡
-
Open new tabs at the end
-
- 允许单击预览文件( 标题为斜体 )
-
Enable preview tab
-
- 选项卡分行显示
- 为标签使用小字体
-
配色方案
Color Scheme
我的 配色方案 用了几年了,还不错,不过找不到原始地址了。分享一个 项目 ,自己选一个合适的 配色方案 吧,不刺眼不太暗的,眼睛看着舒服点的比较好。
-
代码风格 推荐: Google style
Code Style -> Scheme
仅适用 Java 开发相关的文件,其他文件更推荐使用 Prettier 进行格式化。
-
行注释设置
Code Generation -> Comment Code
不显示在行首( 参考 )。
-
Line comment at first column
-
Add a space at comment start
-
-
Block comment at first column
-
-
-
文件模板 ( 参考 )
File and Code Templates
文件模板变量
-
文件头
Includes -> File Header
比如作者信息:
/** * Created with IntelliJ IDEA. * * @author anyesu * @date ${YEAR}-${MONTH}-${DAY} */
-
编码设置
File Encodings
配置项 Global Encoding UTF-8
Project Encoding UTF-8
Default encoding for properties file UTF-8
Transparent native-to-ascii conversion ✔ -
文件类型 ( 参考 )
File Types
-
Recognized File Types
文件类型 模式 Dockerfile Dockerfile
->Dockerfile*
nginx config file + *nginx*.conf
需要先安装 nginx Support 插件 TypeScript config + tsconfig.*.json
-
Ignore Files and Folders
项目视图隐藏无关的配置文件,追加下面内容( 注意分号隔开 )。
*.iml;.idea;.classpath;.mymetadata;.project;.settings;.vscode;yarn.lock;
-
-
内嵌提示( 比如提示缺省值,方法参数名,参数类型,返回类型等 )
Inlay Hints
- TypeScript
- Parameter hints
-
For non-literal arguments
-
- Type annotations
-
Non-parenthesized single parameter
-
Function returns
-
- Parameter hints
- TypeScript
-
-
版本控制
Settings -> Version Control
集成各种 版本控制 工具的客户端,也是我用过 Windows 平台下最好用的 Git 图形化客户端 ,没有之一。
-
对修改的文件的父目录进行标色,从而快速发现哪些目录有改动( 参考 )
-
Show directories with changed descendants
-
-
提交代码使用模态框
Commit
-
Use non-modal commit interface
-
-
提交代码前的检测一般来说作用不大,建议都关闭
Commit -> Before Commit
-
-
构建工具
Settings -> Build, Execution, Deployment -> Build Tools
-
配置全局的 Maven
Maven home path
User settings file
Settings -> Appearance & Behavior -> Path Variables
配置环境变量 M2_HOME/MAVEN_HOME 后, IDE 中的 MAVEN_REPOSITORY 变量可能会没有生效,解决办法:删掉 MAVEN_REPOSITORY 变量后重启 IDE 会自动生成。
-
-
设置受信任的项目路径
Settings -> Build, Execution, Deployment -> Trusted Locations
-
共享索引
Settings -> Tools -> Shared Indexes
通过共享公共类库的索引可以大大提升构建索引的速度。
Wait for shared indexes
-
JDKs
-
Download automatically
-
-
Maven Libraries
-
Download automatically
-
-
打开之后自动启动项目( 项目级别配置 )
Settings -> Tools -> Startup Tasks
自行添加运行配置。
-
External Tools
将外部程序作为一个功能简单集成到 IDE 中( 命令行调用 ),可添加到 Quick Lists 。
Tools -> External Tools -> xxx
使用经验
-
关于激活
注册码点击 这里 获取 ( 目前已暂停提供激活码 ),需要把下面的配置加入到 hosts 文件中。0.0.0.0 account.jetbrains.com # 下面这个是官网,2019.1 版本起,IDEA 启动的时候会从官网校验注册码,所以需要屏蔽,需要访问官网时再注释掉配置 0.0.0.0 www.jetbrains.com
有条件的还是支持下正版吧。
目前免费的激活码很不稳定,很快会过期,可以尝试 重置试用 的方法( 文档 )。
-
关于升级
建议一直保持最新版,官网的 更新日志 写的很详细了( 可以指定某一版本 - 2021.2 ),尤其现在支持国际化了,可以好好阅读下。如果不想做小白鼠可以迟几小个版本。更新前最好做好配置文件的备份( Windows 在
%HOMEPATH%
目录下,比如.IntelliJIdea2019.1
, 参考 )。 -
全局检索
2018.3
版本起,双击Shift
即可调出全新的 Search Everywhere ,合并了原先 类、文件、符号、Action 的搜索。 -
运行一切
2018.3
版本起,双击Ctrl
调出窗口,可以执行 运行配置 或者 终端命令 。在这个窗口下按Shift
切换run/debug
模式。 -
备份个性化设置
File -> [Manage IDE Settings] -> Export Settings
-
Java bytecode decompiler
反编译 class 专用,谁用谁知道。要是整个 Jar 包 反编译还是用 JD-GUI 吧。
-
Terminal
轻量好用的终端工具,不仅支持本地命令执行,还能连接远程主机,可以
Ctrl + C/V
二连很重要。
其他
- 搭配 Docker 使用,详见 IntelliJ IDEA 使用 Docker 远程部署
- IntelliJ IDEA 如何查看或显示实时内存
- 配置 Tomcat 远程调试
- 关于 IntelliJ IDEA 文档无法编辑的解决办法
- 支持 ES6 语法
- idea 下字符串的长度太大
- 设置忽略部分类编译错误
- idea 查看一个类的所有子类以及子类的子类并以层级关系显示
- 使用 IntelliJ IDEA 查看类的继承关系图形