Live Templates

快速编写大段格式代码。

File and Code Templates

智能补全

这是通过Postfix Completion 配置设置的。参考:https://www.jetbrains.com/help/idea/2018.2/auto-completing-code.html#custom_postfix_templates

$EXPR$ ,代表的是表达式

快速定义局部变量

在字符串或者数字……后面输入 .var,回车,IDEA会自动推断并快速定义一个局部变量,不过它是 final 类型的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ON0bwTES-1667819161618)(https://demon75520-images.oss-cn-shanghai.aliyuncs.com/csdn/2021/10/idea.var)]

快速定义成员变量

在值后面输入.field,可以快速定义一个成员变量,如果当前方法是静态的,那生成的变量也是静态的。

快速格式化字符串

在字符串后面输入.format,回车,IDEA会自动生成 String.format…语句

快速判断(非)空

非空:.notnull 或者 .nn,空:.null。

快速取反判断

输入 .not 可以让布尔值快速取反,再输入 .if 可快速生成 if 判断语句块。

快速遍历集合

下面是几种 for 循环语句的快速生成演示,.for, .fori, .forr 都可以满足你的要求。

快速返回值

在值后面输入.return,可以让当前值快速返回。

快速生成同步锁

在对象后面输入.synchronized,可以快速生成该对象的同步锁语句块。

快速生成JDK8语句

在对象后面输入.lambda,.opt

快捷键

删除到行尾、行首

Shift + Delete 与 Delete 是一样的,Shift + BACK_SPACE 与 BACK_SPACE 一样的,可以把这2个快捷键,修改为删除到行尾、删除到行首

idea changes监听文件 idea变量监视怎么弄_插件

定位到导航

ALT + 1 为打开代码结果导航,可以设置 CTRL + ALT + 1 为定位到当前代码文件

复制,剪切当前行

直接把光标放在当前行里,或者放在当前行的末尾,按下 Ctrl + C 即可复制当前行

剪切当前行: 和复制类似,直接把光标放在当前行里,或者放在当前行的末尾,按下 Ctrl + X 即可剪切当前行。

打开文件所在目录

查找 show in explorer action,设置快捷键 Ctrl + Alt + Shift + E

调试

断点处添加 log

很多程序员在调试代码时都喜欢 print 一些内容,这样看起来更直观,print 完之后又很容易忘记删除掉这些没用的内容,最终将代码提交到 remote,code review 时又不得不删减这些内容重新提交,不但增加不必要的工作量,还让 log tree 的一些节点没有任何价值

IntelliJ IDEA 提供 Evaluate and Log at Breakpoints 功能恰巧可以帮助我们解决这个问题


idea changes监听文件 idea变量监视怎么弄_快捷键_02

勾上 “Breakpoint hit” message,会在console打印 日志。


idea changes监听文件 idea变量监视怎么弄_intellij idea_03

字段断点

可以在 IntelliJ IDEA 中为某个字段添加断点,当字段值有修改时,自动跳到相应方法位置

idea changes监听文件 idea变量监视怎么弄_intellij idea_04


idea changes监听文件 idea变量监视怎么弄_插件_05

异常断点


idea changes监听文件 idea变量监视怎么弄_插件_06

方法断点


idea changes监听文件 idea变量监视怎么弄_java_07

断点图标


idea changes监听文件 idea变量监视怎么弄_idea changes监听文件_08

Stream Trace

可视化调试

1、在Stream语句上设置Line断点。

2、以debug模式运行程序

3、停在断点,然后打开 "Stream Trace"视图


idea changes监听文件 idea变量监视怎么弄_intellij idea_09

idea changes监听文件 idea变量监视怎么弄_intellij idea_10

创建临时文件,Git 跟踪不到的那种

IDEA设置

方法分割线以及字符缩进

方法之间有分割线。


idea changes监听文件 idea变量监视怎么弄_插件_11

小技巧

Inject language

如果你使用IDEA在编写JSON字符串的时候,然后要一个一个\去转义双引号的话,就实在太不应该了,又烦又容易出错。在IDEA可以使用Inject language帮我们自动转义双引号。

先将焦点定位到双引号里面,使用alt+enter快捷键弹出inject language视图,并选中
Inject language or reference

选择后,切记,要直接按下enter回车键,才能弹出inject language列表。在列表中选择 json组件。

再次使用alt+enter快捷键弹出窗口

使用快捷键移动分割线

Alt + 1显示 project 窗口,然后直接使用ctrl+shift+左右箭头来移动分割线。

ctrl+shift+enter不只是用来行尾加分号的

本文档内替换

有5个地方用到了相同文本,例如rabbitTemplate,如何批量修改呢?
首先是使用ctrl+w选中rabbitTemplate这个文本,然后依次使用5次alt+j快捷键,逐个选中,这样五个文本就都被选中并且高亮起来了,这个时候就可以直接批量修改了。

把鼠标定位到project视图里

可以先使用alt+F1,弹出Select in视图,然后选择Project View中的Project,回车,就可以立刻定位到类的位置了

或者

Alt + 1显示 project 窗口,鼠标点击 scroll from source

强大的symbol

如果你依稀记得某个方法名字几个字母,想在IDEA里面找出来,可以怎么做呢?
直接使用ctrl+shift+alt+n,使用symbol来查找即可。

按照模板找内容

可以根据模板来找到与模板匹配的代码块

1、首先使用ctrl+shift+A快捷键弹出action框,然后输入Search Struct

2、选择Search Structurally后,回车,跳转到模板视图。

别轻易自定义快捷键

IntellIJ IDEA里的每个操作,都可以看出一个action。我们可以使用ctrl+shift+a来输入我们要使用的操作。比如说,上面提到的Rebuild Project。你可以先使用ctrl+shift+a快捷键,然后输入Rebuild Project并回车,即可执行你要的操作。

如何阅读又长又臭的代码

创建任意代码折叠块

ctrl+shift+.

大括号匹配

你可以将光标定位在某个大括号一边,然后使用ctrl+]或者ctrl+[来回定位即可。

ctrl+shift+f7结合f3

ctrl+shift+f7可以高亮某个变量,而且随着鼠标的移动,这个高亮是不会消失的(这个很重要)。然后使用f3找到下一个使用该变量的地方。

使用ctrl+shift+i

这个也是阅读长段代码的法宝,当你阅读的代码很长的时候,突然想看代码里某个类的定义,那么直接使用ctrl+shift+i,就可以在当前类里再弹出一个窗口出来。

参考

https://www.techug.com/post/intellij-idea.html

插件

RestfulToolkit—RESTful服务开发

根据 URL 直接跳转到对应的方法定义 (Windows: ctrl+\ or ctrl+alt+n )并且提供了一个 Services tree 的可视化显示窗口

作为一个简单的 http 请求工具来使用

在请求方法上添加了有用功能: 复制生成 URL、复制方法参数…

其他功能: java 类上添加 Convert to JSON 功能,格式化 json 数据 ( Windows: Ctrl + Enter; Mac: Command + Enter )

Key Promoter X—快捷键

它的功能主要是在一些你本可以使用快捷键操作的地方提醒你用快捷键操作。

还有一个功能:展示出哪些快捷键你使用的次数最多


idea changes监听文件 idea变量监视怎么弄_快捷键_12

Presentation Assistant—快捷键展示

安装这个插件之后,你用键盘快捷键所做的操作都会被展示出来,非常适合自己在录制视频或者给别人展示代码的时候使用。

设置:File | Settings | Appearance & Behavior | Presentation Assistant

RoboPOJOGenerator

JsonObject 字符串转Java POJO类

File -> New -> “Generate pojo from json”

Statistic—项目信息统计

CamelCase-多种命名格式之间切换

这个插件可以实现包含6种常见命名格式之间的切换。并且,你还可以对转换格式进行相关配置(转换格式)

有了这个插件之后,你只需要使用快捷键 shift+option+u(mac) / shift+alt+u 对准你要修改的变量或者方法名字,就能实现在多种格式之间切换了

Grep Console:控制台输出处理

自定义设置控制台输出颜色

过滤控制台输出

EasyCode:一键帮你生成所需代码

Easycode 可以直接对数据的表生成entity、controller、service、dao、mapper无需任何编码,简单而强大。

参考:easycode

Git Commit Template:使用模板创建commit信息

Code screenshots :代码片段保存为图片

选择一个代码并按热键(默认为 Ctrl+Alt+Shift+A)将其复制为图像(制作屏幕截图)。

stackoverflow :

选中相关内容后单击右键即可快速跳转到 stackoverflow 。

Active Tab Highlighter插件——高亮Tab标签

需要设置颜色。

GenerateAllSetter插件——一键调用一个对象的所有setter方法

在代码中,new一个对象,鼠标停留在对象变量userEntity上,alt+enter会出现快捷选项

generate all setter

Scroll From Source

可以让设置 快捷键

Squaretest

自动生成单元测试代码。

Save Actions

可以帮忙我们优化包导入,自动给没有修改的变量添加final修饰符,调用方法的时候自动添加this关键字等,使我们的代码更规范统一。


idea changes监听文件 idea变量监视怎么弄_intellij idea_13

GsonFormatPlus

一款能根据 JSON 字符串自动生成实体类的插件,支持 Lombok。


Translation

翻译工具,可以指定翻译引擎,例如有道。作者:Yii.Guxing

arthas idea

可以自动生成 arthas的命令。

Search In Repository

避免去自己搜索 第三方库的maven pom。

JDK VisualGC

作者:BeanSoft。

Idea堆栈的可视化工具,和Idea深度集成。直接显示所有进程,双击即可打开JVM的堆栈可视化界面

JRebel and XRebel

在idea中开发Java项目,有个很不爽的地方是:每次修改一个类或者接口,都需要重启服务,否则不会运行最新地方。

而每次重启,都需要花大量的时间。

有没有办法,Java代码修改后不用重启系统,立即生效呢?

答:使用JRebel and XRebel插件。

Select Rebel Agents选项中包含三个值:

  • JRebel:修改完代码,不重启服务,期望代码直接生效。
  • XRebel:请求过程中,各个部分代码性能监控。例如:方法执行时间,出现的异常,SQL执行时间,输出的Log,MQ执行时间等。
  • JRebel+XRebel:修改完代码,不重启服务,并且监控代码。

其他,个人没有装

  1. leetcode editor :提供在线 Leetcode 刷题功能,比较方便我们刷题,不过我试用之后发现有一些小 bug,个人感觉还是直接在网站找题目刷来的痛快一些。
  2. A Search with Github :直接通过 Github搜索相关代码。
  3. CodeStream :让code review变得更加容易。
    需要注册,不太好。
  4. activate-power-mode : 写代码的时候自带动画效果!
  5. GitToolBox :Git工具箱
  6. OK, Gradle! :搜索Java库用于Gradle项目

参考

更多插件参考:

其中的工具:

Action Tracker插件——动作跟踪器

idea 自定义快捷键配置文件:C:\Users\当前用户\.IntelliJIdea2018.2\config\keymaps\*.xml

idea 系统快捷键配置文件:D:\Program Files\JetBrains\IntelliJ IDEA 2018.2.3\lib\resources.jar\idea\KeyMap_***.xml。(在对应安装目录,resources.jar 压缩文件中的$default.xml)

idea 系统快捷键功能描述文件 D:\Program Files\JetBrains\IntelliJ IDEA 2018.2.3\lib\resources_en.jar\messages\ActionsBundle.properties

IDEA :https://www.jetbrains.com/help/idea/2017.1/requirements-for-intellij-idea.html