Idea 多光标操作
操作基础





格式批量调整


批量添加 Swagger 属性注释


在多个相同结构 Json 中提取某字段信息


Debug
移动/ 复制断点

删除断点

配置断点属性
在我们进行调试的时候,很多时候其实并不需要所有断点发生情况都触发,我们需要有条件的触发,这个时候我们就可以为这个断点本生设置条件,只有在条件范围内触发后 在触发断点。

无阻塞断点
这个应该大部分同步不知道

调试窗口介绍

调试工具窗口为每个会话显示以下选项卡:
- Frames:使您可以在线程的调用堆栈中导航。
- Variables:列出当前上下文中可用的变量,并让您分析和修改程序状态。
- Watches:让您管理手表。默认情况下,监视显示在“变量”选项卡上,以更有效地利用屏幕空间。如果您有很多手表,请考虑在单独的标签中查看它们。
- Console:显示程序输出。
对于本地会话,该选项卡的作用与您在未连接调试器的情况下运行该程序的作用相同。唯一的区别是调试器输出(例如,来自断点的日志消息)已添加到控制台。
当您附加到进程时,程序输出不会重定向,并且调试器控制台中仅显示调试器输出。 - Threads:显示活动线程列表,并允许您在它们之间切换。在此选项卡中,您可以以文本格式导出线程信息。
- Memory:提供有关堆上当前可用对象的信息,并允许您监视和分析它们的生存期。
- Overhead:允许您监视特定调试器功能消耗的资源并优化调试器性能。
idea 快捷键
方法参数提示
ctrl + p

折叠代码
ctrl + -

全局查找文本
ctrl + shift + F
最近修改的代码
ctrl + E

自动代码片
ctrl + j

实现接口方法
ctrl + i

查看当前类的子类
ctrl + h

删除当前行
ctrl + y
重写 或者 实现接口或父类方法
ctrl + o
将当前行和下一行进行合并
ctrl + shfit + j

将光标跳到当前行的上一行
ctrl + alt + enter
显示类之间的关系
ctrl + alt + u

删除类中没有用到的package
ctrl + alt + o
进入设置界面
ctrl + alt + s
在当前光标在的这样一行的下一行添加一行, 并自动添加括号, 标点符号等
ctrl + shfit +enter
弹出, 当前类中的方法集合
在做javaweb的时候, 一个controller 方法太多, 不好查找, 这个方法就派上用场了, 一般的controller的方法名增删查改, 就能很快定位到代码的位置
ctrl + F12

添加书签
ctrl + f11
比较强大的几个快捷键之一 Ctrl + ~(感叹号旁边的按键)
ctrl + ~
共有五种可供选择的操作

Switch Code Formatter (切换代码格式化程序)
可以在eclipse和idea的代码格式化之间快速转换

Color Scheme (配色方案) (ctrl + ~ 选择 Color Scheme)
可以设置一些常用的配色, 字体样式, 可以一键切换

Keymap (快捷键列表) (ctrl + ~ 选择 Keymap)
我们的同事有的喜欢在idea上用eclipse的快捷键, 有时候帮忙调试程序的时候, 就有点恼火了,对于用习惯了idea快捷键的人, 是真的用不习惯eclipse的快捷键, 这个时候Keymap就排上用场了

idea 提供了10多种快捷键的可选择的模式, 任我们随意切换, 这样就可以在帮同事调试代码时临时调整快捷键, 调试完毕后在切换回去
View Mode (显示模式) (ctrl + ~ 选择 View Mode)

可以屏蔽其他内容, 只显示类中的相关代码, 让你专注编程
搜索文件
ctrl + shift + n
搜索类合
ctrl + n
抽取局部变量
ctrl + alt + v
进入到实现子类中
ctrl + alt + b

格式化代码
ctrl + alt + L
idea 多光标的使用
- 按下滚轮上下拖动鼠标即可
- 在相同的元素后面添加光标 alt + j
- 选中内容 按 ctrl + shift + alt + j 统一修改相同的内容
选中当前单词(非常好用)
ctrl + w
alt + 左右箭头
在窗口之间移动
运行当前类
ctrl + shift + F10
从多项目中启动一个 debug 模式
alt + shfit + F9

从多项目中启动一个 正常模式
alt + shfit + F10
快速的查看选中类, 选中方法的定义
有的时候我们不想进入方法内部, 或者进入类的内部查看细节, 想要在外面就探查清楚, 就可以使用此种方法
ctrl + shift + i

比较强大的几个快捷键之一 Ctrl + ~
(感叹号旁边的按键)
ctrl + ~
共有五种可供选择的操作
Switch Code Formatter (切换代码格式化程序)
1. Color Scheme (配色方案)
可以设置一些常用的配色, 字体样式, 可以一键切换

2. Code Style Scheme
3. Keymap
(快捷键列表)

4. View Mode (显示模式)

5. Look and Feel (设置软件主题)
IDEA 版本控制篇 GIT (不一样的操作方式)
查看每一行代码的条件人, 提交时间(大部分人不知道)

选择后入下图所示

鼠标移动上去还能看到提交详细信息

克隆远程代码
git clone origin url
常规操作

装逼操作

拉取远程代码
git pull

快捷方式
ctrl + t
将暂存区代码提交到本地库
git commit -m ‘message’


将本地库 提交到远程库
git push

快捷键
ctrl + shift + k
或
alt + 1 + 8
切换分支, 或拉取远程分支

以下提供几种快捷方式
ctrl + shift + `
或
alt + ~ + 7
或

查看当前打开类 历史记录
alt + ~ + 4
查看项目工程历史记录
选中工程后
alt + ~ + 4
或 alt + 9
切换到 Version Control
面板 选择log

idea 内置ssh远程工具
平常在开发的时候, 避免不了需要远程服务器操作, 平常我们可能会使用 `xshell` 等连接工具, 但是其实 `idea`也内置了这样的功能


上图中展示的是IDEA
中两个非常棒的内置功能,可以在Tools -> Start SSH session
中开启远程服务器的终端,在IDEA
下方可以执行远程指令;也可以在Tools -> Deployment ->Browse Remote Host
中展开如图右侧的结构,可视化地浏览服务器上的文件列表,检查应用是否部署成功。
这功能真的超方便
IDEA 常用设置
0x01
IDEA以新窗口的形式打开多个项目
File – Settings – Appearance & Behavior – System Settings

0x02
修改IDEA 默认编码 -> UTF-8
File – Settings – Editor – File Encodings

0x03
设置统一编译器和编译版本
File – Setting – Build – Compiler – Java Compiler

0x04
设置类注释
File – Editor- File and Code Templates
/**
* @Package ${PACKAGE_NAME}
* @author atom.hu
* @date ${DATE} ${TIME}
* @version V1.0
*/

0x05
自动导包
File – Editor- General – Auto Import

0x06
内存使用量展示
由于日常开发时都是在公司的办公电脑上进行的,所以内存总是不够用,但是又不清楚IDEA具体实时的占用了多少内存。这个时候对于一些内存并不是太够的开发人员来说能看到实时的内存使用量还是比较好的
File – Settings – Appearance & Behavior


0x07
开启悬浮提示
有时候在看代码的时候,不清楚一个类具体是干什么的,就会点进去看这个类的注释,但是强大的IDEA是支持不用点进去就可以看到注释的以及类的相关信息的。
File – Settings – Editor – General

0x08
Ctrl+鼠标滚轴修改字体大小
IDEA也支持向浏览器那样按住Ctrl+鼠标滚轴来改变编辑区的字体的大小
File–>Settings–>Editor–>General。

0x09
显示多行Tab
当我们打开的标签页多了的时候,默认的会隐藏在右侧,当我们需要的时候在右侧找到后再打开。IDEA是支持多行显示的,这样在大屏幕的显示器上也不用总去点击右侧的去找刚才打开过的文件了
File – Settings – Editor – General – Editor Tabs

0x0A
设置字体, 行距 让代码看着更舒服
File – Settings – Editor – Font

0x0B
IDEA GIT 配置
File – Settings – Version Control – Git

0X0C
IDEA MAVEN 配置
File – Settings – Build – Build Tools – Maven

idea 插件
Alibaba Cloud Toolkit
个人经常会有这样的需求, 每次自己更新完测试环境之后, 就需要 maven
打包clean install
, 然后copy
jar
包, 利用ftp
工具上传jar
包到测试服务器, 然后kill
服务, 在启动服务 java -jar
, 有时更新频繁 这就是一件非常麻烦的事
Cloud Toolkit
是本地 IDE
插件,帮助开发者更高效地开发、测试、诊断并部署应用。通过插件,您可以将本地应用一键部署到云端(ECS、EDAS 和 Kubernetes 等
)和任意服务器;并且它还内置了 Arthas
程序诊断、Dubbo工具
、Terminal Shell
终端和 MySQL
执行器等工具。
简单的说, 安装了这个插件之后, idea
就具备了一些jenkins
的自动部署的功能
0x01 安装
在 idea
工具中Plugins
直接搜索安装
0x02 使用

在安装完成之后, 在工具栏中就会出现阿里云的按钮, 点击按钮

然后点击 Deploy to Host
, 然后下方就会出现添加主机页面

点击 Add Host

以我自己的博客为例, 输入完配置之后, 点击 Test Connection
, 出现 Succeeded
, 点击 add
, 代表添加成功

然后再点击 Deploy to Host

点击Run
, idea
便会, 先使用maven
打包, 后发送到服务器的指定位置


后续还可以 监听启动日志, 很简单, 就是 Advanced
里面, 大家看看就知道了, 后续有时间再完善笔记吧
阿里巴巴编码规范
Alibaba Java Coding Guidelines
翻译插件
Translation
mybatis 插件
Free Mybatis plugin
Lombok 插件
IntelliJ Lombok plugin
Lombok pom.xml 文件配置
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
GenAllSetter 特性
在Java方法中, 根据 new 关键词, 为Java Bean 生成所有Setter方法。
按GenAllSetter键两次, 会为Setter方法生成默认值。
GenDaoCode
一键生成 dao
xml
service
CodeGlance
在右侧生成代码地图
RestfulToolkit
RequestMapping搜索神器
加入这个插件之后, 在做java搜索的时候就方便很多了
ctrl + alt + n 或者 ctrl + \

就能很快等位到接口了, 调试和查找问题都会方便很多
Grep Console
高亮log不同级别日志,看日志的时候一目了然。
MyBatis Log Plugin
把 Mybatis 输出的sql日志还原成完整的sql语句,看起来更直观。
Save action + google java format 自动格式化代码
时间宝贵, 就不需要在重复的工作上浪费时间, 每次都要通过 ctrl + alt + o 来移除jar包, 每次都要通过 ctrl + alt + L 来格式化 代码, 太麻烦, 有没有好的解决办法呢, 我想要在我保存的时候就自动帮我格式化代码, 自动帮我去除没有用的jar 包
安装上面的两个插件, 并分别修改设置如下
修改 google java format 设置

修改Save Action 插件设置

点击Ok
查看效果, 随意输入, 不论格式有多乱, 在最后, 都会帮你还原, 而且去除没有使用的导入

Jsp 文件自动格式化

来源:https://www.zhihu.com/question/300830746/answer/672248406