IDEA 集成开发环境

摘要:IDEA 集成开发环境、Linux 开发工具、Git 版本控制、项目管理/构建工具等。


目录

[TOC]

编辑器 UI界面

快捷键

Ctrl
  • Ctrl + D 复制光标所在行 或 选中的内容,并插入到光标后
  • Ctrl + E 显示最近打开的文件列表
  • Ctrl + F 查找使用此类的成员
  • Ctrl + J 插入自定义动态代码模板
  • Ctrl + U 实现类跳转到接口的方法
  • Ctrl + Y 删除光标所在行 或 选中行
  • Ctrl + /Ctrl + Shift + /:注释单行、多行
  • Ctrl + \Ctrl + Alt + N/B根据 URL 直接跳转到对应的方法定义
  • Ctrl + ; 基础代码补全
  • Ctrl + . 自动补全?
  • Ctrl + Home:回退到类最前面
  • Ctrl + [Ctrl + ] 移动光标到花括号开始、结束位置
  • Ctrl + Shift + [ 选中从光标到中括号开始位置
  • Ctrl + =/- 展开、折叠分
    • Ctrl + Shift + =/- 全部展开、折叠
  • Ctrl + F12 Structure面板
    • Alt + 7 方法大纲
Alt
  • Alt + left:回退到上一个操作位置
  • Alt + 显示版本控制菜单
  • Alt + F1 + 1Alt + 1 + 1:定位当前文件所在 Project 窗口中的位置,已用Always Select Opened File设为自动定位
  • Alt + F3 在当前文件查找
  • Alt + Home 导航栏
  • Alt + Insert 代码自动生成,如生成对象的 set / get 方法,构造函数,toString() 等
  • Alt + Enter 查询控制台Query Console编辑器中,提示可执行的功能,如SELECT *语句选中*扩展成相关列、列添加别名前缀
    • Free MyBatis Plugin 直接生成新方法的xml实现
  • Alt + F Find in file,在所有文件中查找字符串
  • Alt + FTranslate 插件翻译选中内容,需联网;
  • Alt + F7 Find Usage,查看在哪里用了。
Shift
  • Shift + Shift 随处搜索
Ctrl + Alt
  • Ctrl + Alt + S 打开系统设置
  • Ctrl + Alt + 左方向键 退回到上一个操作处/光标所在位置,与显卡调整屏幕方向的快捷键冲突
  • Ctrl + Alt + enter 执行SonarLint 插件提供的修改建议
  • Ctrl + Alt + B/鼠标左键 接口跳转到实现方法XML 映射文件
  • Ctrl + Alt + C 重构-快速提取常量
  • Ctrl + Alt + F 重构-快速提取成员变量
  • Ctrl + Alt + L 自动格式化、格式化SQL语句;
  • Ctrl + Alt + M 重构-快速提取方法、接口
  • Ctrl + Alt + P 重构-快速提取参数
  • Ctrl + Alt + V 重构-快速提取变量
Ctrl + Shift
  • Ctrl + Shift + + 展开所有代码
  • Ctrl + Shift + Space 智能代码提示
  • Ctrl + Shift + " 最大化工具窗口、控制台
  • Ctrl + Shift + F12 编辑器最大化
  • Ctrl + Shift + F Find by XPath expression
  • Ctrl + Shift + N 转到文件
  • Ctrl + Shift + R 替换
  • Ctrl + Shift + T 重新打开关闭的选项卡、对当前类生成单元测试类,如果已存在的单元测试类则可进行选择
  • Ctrl + Shift + U 变量大小写切换;方法继承关系表Diagram
Alt + Shift
  • Alt + Shift + 上方向键 上移光标所在行
智能补全
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//Press Enter to insert, Tab to replace
//ctrl + . select first default,自动补全
//psvm + ctrl+.
public static void main(String[] args) {}

//sout
System.out.println();
//soutm
System.out.println("Main.main");
//soutp
System.out.println("args = " + Arrays.deepToString(args));
//soutv
System.out.println("args = " + args);

//123.var
int i = 123;
//new File().var
File file = new File();
//[expression].if
if (args.length > 1) {}
//[variable].nn
if (args != null) {}

//args.for
for (String arg : args) {}
//args.fori
for (int i = 0; i < args.length; i++) {}
//args.forr
for (int i = args.length - 1; i >= 0; i--) {}

//[statment].try
//语句外层加try...catch

//dep + Enter in pom.xml
//生成依赖模板
C:\Program Files\Java\jdk1.8.0_92
D:\Develop\Java\jdk\jdk1.8.0_311\;D:\Develop\Java\jdk\jdk1.8.0_311\bin\;C:\Program Files\Common Files\Oracle\Java\javapath\

常用插件

UI

  1. Material Theme UI:更改原始外观,提供多种主题配色方案;
  2. Atom Material Icons:自定义文件和 IDE 图标,用于改进视觉;是Atom File IconsMaterial Theme UI插件图标的移植。
  3. GoSense Color Scheme:在 Material Deep Ocean 基础上对 Golang 配色;
  4. HighlightBracketPair:高亮括号对;
  5. Rainbow Brackets:彩色括号,与 Material Theme UI 冲突,需手动配置来兼容 Solarized Themes 日晒主题的配色方案;
  6. Statistic:通过顶部菜单中的 View->Tool Windows->Statistic按钮统计当前项目中代码的行数和大小;
  7. Grep Console:控制台所需的一切;分析控制台日志,对不同级别的日志进行不同颜色的高亮显示,按关键字搜索日志内容;
  8. Ideolog:日志级别的代码高亮;

便捷查看

  1. jclasslib ByteCode Viewer:Java .class 类文件的字节码查看器;
  2. Chinese (Simplified) Language Pack:中文语言包;
  3. Translate:选中内容,点击右键或 Alt + T 翻译;
  4. MetricsReloaded:统计代码行数和文件计数指标及更多 Java 指标;
  5. Presentation Assistant:显示调用的任何操作的名称和 Win/Mac 快捷方式(查看 外观 操作描述);
  6. Statistic:统计整体代码量。

基础编辑

  1. Key Promoter X:提示应使用的键盘快捷键;
  2. macOS Keymap:macOS 键盘映射;
  3. CamelCase:切换各种变量命名格式(驼峰、下划线、kebab-case, SNAKE_CASE, PascalCase, camelCase, snake_case or space case);使用 ⇧ + ⌥ + U / Shift + Alt + U
  4. String Manipulation:字符串操作,大小写切换、排序、过滤、递增、与列对齐、grepping、转义、编码;

生成、补全代码

  1. GitHub Copilot:AI 自动写代码;
  2. Tabnine AI Code Completion:代码提示建议、预测、自动补全;
  3. File Path Autocomplete:自动完成文件路径;
  4. Big Data Tools:可方便地使用 Zeppelin 笔记本,提供智能导航、代码完成、检查、快速修复和重构;
  5. Better Comments:个性化注释;
  6. GsonFormatPlus:从 Json String 生成 Json 模型;
  7. element:支持元素框架,标签自动补全,使用前必须安装插件 vuejs
  8. ptg:快速生成 JavaBean、SQL、JVM 参数、Spring 配置;

Sonar 代码检查

  1. Maven Helper:快速分析、排除项目中的依赖冲突;通过 pom.xml 文件底部的依赖分析标签页查看当前项目中的所有依赖;
  2. Alibaba Java Coding Guidelines:实时检测代码中不符合阿里巴巴《Java 开发手册》规约的地方;
  3. SonarLint:拼写检查器,即时突出显示问题、错误、漏洞,并提供快速修复建议;
  4. CheckStyle-IDEA:提供对 Java 文件的实时和按需扫描;

格式化代码

  1. Jindent:源代码格式化,转换任何外部 Java 源代码以满足首选的编码风格或任何常见的 Java 代码约定;按需格式化、生成和完成 Javadoc 注释;
  2. Save Actions:支持可配置的、类似 Eclipse 的保存操作,包括“优化导入”、“重新格式化代码”、“重新排列代码”、“编译文件”及一些针对 Java 的快速修复,如“添加/删除 ‘this’ 限定符”等。当文件在磁盘上同步(或保存)时执行配置的操作;
  3. Properties to YAML Converter:YAML 属性转换器;

实体类

  1. Lombok:简化对象封装,通过为实体类添加 @Getter@Setter 等注解,替换手写的 Setter、Getter、toString、equals、hashCode 及非空判断等;已捆绑,内置插件;
  2. JPA Buddy:高效地使用 Hibernate、Spring Data JPA、Lombok 等相关技术;实体的所有可视化设计器、Spring Data 存储库、SQL 和 Liquibase 变更日志;
  3. MyBatisX:可在 mapper 接口的方法和 xml 实现之间自由跳转、类似 JPA 的自动提示;mybatis.xml, mapper.xml 提示;集成 mybatis 生成器 Gui;
  4. MyBatis Log Plugin:把 Mybatis 输出的 SQL 日志还原成完整的 SQL 语句;付费;
  5. GsonFormat:在实体类名上右键 Generate -> GsonFormat,可根据 JSON 格式的字符串创建实体类;
  6. Screw:生成数据表文档。

接口调试

  1. HTTP Client:简洁、轻量级的接口调用插件,通过创建 HTTP Request Client 文件并执行,来调试 RESTful Web 服务;参考
    • Ctrl + J 查看创建 HTTP 请求的所有快捷命令;
    • 鉴权方式;
    • 内置了 6 个 Live Template 模板:gtr gtrp ptr ptrp fptr mptr
  2. RestfulToolkitX:一套 Restful 服务开发工具包;
    1. 用于生成多种风格的代码生成器,如 SpringBoot + MyBatis-Plus、SpringBoot + JPA、JHipster 等;
    2. 输入 URL 直接导航/跳转到服务声明/方法定义(Ctrl + \ 或 Ctrl + Alt + N );
    3. 显示 Restful 服务树窗口结构;
    4. 内置简单的 HTTP 请求工具;
    5. 对请求方法做了一些增强功能,在请求方法上 Generate&Copy(复制生成) URL、Query Param 方法参数;
    6. 将 Java 类转换成 JSON,格式化 json 数据(Ctrl + Enter);
    7. 支持 Spring 体系(Spring Boot / Spring MVC);
  3. 右侧的 RestServices 按钮显示项目中接口的概览信息;
    1. 在接口方法上右键可生成查询参数、请求参数、请求 URL;
    2. 在实体类上右键可直接生成实体类对应的 JSON;

debug

Alibaba Arthas

基于IntelliJ IDEA开发的Alibaba Arthas 命令生成插件,支持Alibaba Arthas 官方常用的命令。

是Alibaba开源的Java诊断工具,可以帮助开发者进行在线排查问题、动态跟踪Java代码、实时监控JVM状态等。

  • Arthas支持JDK 6+,支持Linux、Mac和Winodws系统,采用命令行交互模式,同时提供丰富的Tab自动补全功能,方便进行问题的定位和诊断。
  • 其实Arthas最厉害的地方就在于,能够让你在线上环境没有日志的情况下进行调试程序,定位问题。

当遇到以下类似问题而束手无策时,Arthas可以帮助你解决:

  • 这个类从哪个jar包加载的?为什么会报各种类相关的Exception?
  • 我改的代码为什么没有执行到?难道是我没commit?分支搞错了?
  • 遇到问题无法在线上debug,难道只能通过加日志再重新发布吗?
  • 线上遇到某个用户的数据处理有问题,但线上同样无法debug,线下无法重现!
  • 是否有一个全局视角来查看系统的运行状况?
  • 有什么办法可以监控到JVM的实时运行状态?
  • 怎么快速定位应用的热点,生成火焰图
  • 怎样直接从JVM内查找某个类的实例?

官方的命令太复杂,此插件为了简化使用者的难度,提供了一些常用命令的支持

  • 该插件支持Alibaba Arthas 常用命令,比如 watch、trace、ognl static、ognl bean method、field、monitor、stack 、tt等命令
  • 支持设置static field、static final

  • watch:能方便的观察到指定方法的调用情况,返回值、抛出异常、入参(特殊值、异常没有捕获排查)

  • trace:方法内部调用路径,并输出方法路径上的每个节点上耗时(性能问题,调用链问题)

  • ognl:执行表达式(方便获取静态变量,方法,获取spring context 为所欲为)
  • monitor:方法执行监控(性能问题排查,一段时间内的性能指标)
  • stack:获取方法从哪里执行的调用栈(用途:源码学习调用堆栈,了解调用流程)
  • tt:方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测(可以重新触发,周期触发,唯一缺点对于ThreadLocal 信息丢失[隐含参数]、引用对象数据变更无效)
  • 支持获取选择中的spring 环境变量的值获取,获取spring 上下文所有的环境变量按照优先级打印出来,方便排查环境问题
  • logger:动态更新日志等级
  • Async Profiler. https://github.com/jvm-profiling-tools/async-profiler 火焰图命令支持
0%