idea使用

简介: idea使用

一.配置概览

1.主要配置

  • 设置主题
  • 一键导出 idea 配置
  • 一键导入 idea 配置
  • 设置 maven
  • 连接 git
  • live template 模版

2.其他设置

  • 字体大小
  • 自动导入包
  • 方法分割线
  • 忽略大小写
  • 安装插件
  • 修改快捷键

3.历史版本

历史版本

最好下载 2021.1.3 版本,SQL 可以格式化,美化。

二.快捷键

1.查找

  • double shift 全局搜索
  • F19+3 添加书签
  • F19+A 打开全部书签
  • command+E 预览最近打开
  • command+1 打开或隐藏项目列表
  • command+option+N 模糊查找接口
  • command+n 查找类
  • command+逗号 打开设置弹窗
  • command+7 查看类的方法
  • command+2 查看书签,断点,最爱
  • command+f12 查找类的方法
  • command+g 查找单词使用位置,不区分大小写
  • command+G 下一个出现的单词
  • command+shift+a 打开 action 查找
  • command+option+o 查找接口,或者方法
  • control+H 查看类的结构,继承关系或者通过 navigate–>type hierarchy
  • command+D 比对文件
  • command+L 跳转到指定行
  • 跳转
  • option+上下键 翻页
  • command+上下 到文件的顶部底部
  • command+左右 到当前行的首尾
  • command+左右+shift 选中
  • option+左右 单词之间跳转

2.debug

debug 模式下

  • F8 执行下一步
  • F9 到下一个断点
  • F19+9 跳转到当前行
  • command+shift+f8 找到 bookmarks 全部断点
  • 使用 F19+9 也可以跳转到下一个断点

3.git

  • command+T 更新代码
  • command+K 提交代码
  • command+shift+K 推送代码
  • command+P 合并代码 merge
  • option+command+Z 撤销代码
  • option+command+K 提交并推送 需要先按 command+k 选中提交文件

4.编辑

  • command+option+/ 段注释
  • command+/ 行注释
  • command+c 复制当前行
  • shift+command+上 选中到头部
  • shift+command+下 选中到尾部
  • option+command+上 代码上移
  • option+command+下 代码下移
  • command+d 复制当前行
  • control+command+下 复制当前行
  • command+option+左 上一次编辑的地方
  • command+option+右 下一次编辑的地方
  • command+option+T 生成 try-catch
  • option+向上 选中单词
  • command+shift+u 是大小写转换
  • option+m 是去掉空行
  • option+删除键 删除首到当前位置
  • command+删除键 删除当前行
  • command+r 替换
  • command+shift+r 全局替换
  • control+enter 生成构造方法或 get 方法或 set 方法
  • command+option+l 代码格式化
  • shift+command+n 快速生成临时文件
  • option+shift+s 括号外代码高亮–外面变黑
  • command+shift+s 括号代码高亮
  • command+shift+delete 返回上次编辑处
  • command+shift+e 最近编辑列表
  • command+shift+加减 折叠方法
  • command+option+加减 折叠当前
  • shift+上 按行向上选定
  • shift+下 按行向下选定
  • option+上 块选定
  • control+g 选中多个,同时进行编辑
  • command+option+R CamelCase 快捷键
  • control+5 复制文件
  • control+shift+6 修改文件名

5.启动

  • control+R 正常运行
  • control+shift+D debug 启动项目
  • command+R 重启运行
  • command+F9  编译项目

6.定位

  • command+1 定位到项目目录
  • command+home 页首
  • command+end 页尾
  • command+` 切换项目窗口
  • command+option+减号 折叠当前光标所在代码
  • command+加号   展开目录
  • command+减号   折叠目录
  • command+B 定义处和使用处
  • command+option+B 实现处
  • F19+Y 唤起idea终端

7.配置快捷键

  • Extend Selection 扩展选中 option+W
  • Extend Line Selection 选中行 option+L
  • Editor Actions | Duplicate Line or Selection
  • Editor Actions | Extend Line Selection
  • Editor Actions | Scroll to Bottom
  • Editor Actions | Scroll to Top
  • Editor Actions | Extend Selection
  • Main Menu | File | Open Recent
  • Main Menu | Edit | Find | Replace
  • Main Menu | Navigate | Go to File...
  • Main Menu | Navigate | Navigate in File | Next Method
  • Main Menu | Navigate | Navigate in File | Previous Method
  • Main Menu | Navigate | File Structure
  • Main Menu | Navigate | Bookmarks | Toggle Bookmark
  • Main Menu | Navigate | Bookmarks | Show Bookmarks
  • Main Menu | Code | Move Line Down
  • Main Menu | Code | Move Line Up
  • Main Menu | Refactor | Rename...
  • Main Menu | Refactor | Copy...
  • Main Menu | Run | Debugging Actions | Run to Cursor
  • Main Menu | Run | Debugger Actions | Debugging Actions | Force Run to Cursor
  • Main Menu | Run | View Breakpoints...
  • Main Menu | Git | Git | Pull...
  • Version Control Systems | Diff & Merge | Next Difference

三.具体配置

1.一键导入导出配置

  • 先在旧电脑导出配置
  • 再导入到新电脑

2.新项目默认配置

  • 配置新项目的默认 maven 仓库
  • 修改包自动导入

3.配置主题

  • XCode-Dark Theme 加 Atom Material Icons
  • Solarized Dark
  • One Dark theme
  • Material Theme UI

4.配置忽略大小写

5.配置自动导包

Settings→Editor→General→Auto Import选中 Optimize imports on the fly 和 Add unambiguous imports on the fly

6.配置方法分割线

7.设置字体

8.配置 live Templates

login

log.info("$START$={}",$END$);


non

if (Objects.nonNull($START$)) {

   $END$

}


isn

if (Objects.isNull($START$)) {

   $END$

}


co

/**

*$END$

*@author : qinyingjie

*@date : $DATE$

*/

使用安卓的log打印,修改成符合java的格式:

  • logm 打印方法和参数信息
  • logr 打印返回值信息

groovyScript("def params = _2.collect {it + ' = [\" + ' + it + ' + \"]'}.join(', '); return '\"' + _1 + '() called' + (params.empty  ? '' : ' with: ' + params) + '\"'", methodName(), methodParameters())

groovyScript("def params = _2.collect {it + '= {}'}.join(', '); return '\"' + _1 + '() called' + (params.empty  ? '' : ' with: ' + params) + '\"'+','", methodName(), methodParameters())

test:

@Test

@DisplayName("$TEST_NAME$")

void $METHOD_NAME$() {

   Assertions.fail("no passed.");

   $END$

}

9.sql 格式化

关键字大写

逗号分隔位置

10.关闭更新提示

11.设置 tables 个数

设置tabs个数

设置多行显示

12.显示文件修改时间

13.设置代码高亮

14.指定 sql 语法

右键可以看到 change Dialect,然后可以选择相应的 SQL 语法

15.滚轮调整大小

Command + 滑动滚轮 调整窗口显示大小

16.设置多实例

  • 旧版本是 allow parallel run
  • 新版本点击 Modify options,然后 allow multiple instances

17.设置更新

设置更新不提示,插件更新需要提示

18.自动编译

19.配置文件的编码方式

20.Database 展示表关系

显示表关系:

增删改查:

增删改查的 sql 会提供预览,方便记录下来,供生产环境使用

21.TODO

自定义todo,和别人区别开

四.插件使用

1.插件市场

jetbrains插件

https://plugins.jetbrains.com/plugin/14280-restfultool

2.高频插件

  • Bito  不需要翻墙的chatgpt
  • Squaretest  添加测试类
  • CodeGeeX  免费Ai代码提示
  • MapStruct Support   支持MapStruct
  • Pokemon Progress  宝可梦加载
  • Presentation Assistant 快捷键提示
  • JPA Support 逆向工程
  • Grep Console 日志级别颜色设置
  • copilot 代码提示
  • Atom Material File Icons 文件图标
  • vo2dto 类转换
  • RESTfulToolkit 接口快捷访问
  • LeetCode with labuladong 刷题插件
  • Presentation Assistant 快捷键展示
  • GenerateAllSetter 自动 set 值
  • CamelCase 字符串格式切换
  • HighlightBracketPair 括号开始结尾高亮显示
  • Translation 翻译插件
  • Codota 代码提示
  • CodeGlance Pro 代码缩略图
  • JUnitGenerator 自动生成测试类
  • Maven Helper maven 管理工具
  • Rainbow Brackets Lite 彩色括号
  • Alibaba Java Coding Guidelines 代码规范检测
  • Alibaba Cloud AI Coding Assistant (Cosy) 代码提示
  • String Manipulation 驼峰式命名和下划线命名交替变化
  • JRebel 热部署
  • MyBatis Log Plugin
  • MyBatisCodeHelperPro
  • Free Mybatis plugin
  • Lombok 代码自动注入
  • SequenceDiagram 生成简单序列图。
  • SonarLint 代码检查
  • CheckStyle 代码检查
  • Vo2dto 对象转换
  • show comment 展示备注信息
  • .ignore 各类版本控制忽略文件生成工具
  • Nyan progress bar 彩虹加载
  • Save Actions 保存动作
  • MetricsReloaded 方法统计,复杂度检查
  • CSDN 博客插件

3.低频插件

  • NEXchatgpt ai 工具
  • IdeaJad 反编译插件
  • VisualVM Launcher jvm 工具
  • UML 生成类图
  • MapStruct Support pojo 转换
  • any-rule 正则表达式
  • Indent Rainbow 彩色缩进
  • MybatisLogFormat sql 格式化
  • Database Tools and SQL 数据库管理工具
  • Jclasslib Bytecode Viewer 查看字节码
  • Git Flow Integration Git Flow 的图形界面操作
  • MybatisX mybatis 框架辅助(免费)
  • Lombok Lombok 功能辅助插件
  • Alibaba Java Coding Guidelines 阿里巴巴出的代码规范检查插件
  • gittoolbox git 插件
  • lines sorter 插件 代码行数统计
  • Jclasslib Bytecode Viewer 简介:看类的字节码文件。
  • Free Mybatis Plugin 可以通过 mapper 接口里的方法跳转到 mapper.xml 里。
  • IDEA QAPlug 帮助我们提前找到潜在的问题 bug
  • Gitee 开源中国的码云插件
  • IDE Features Trainer IntelliJ IDEA 官方出的学习辅助插件
  • CheckStyle-IDEA 代码规范检查
  • FindBugs-IDEA 潜在 Bug 检查
  • MetricsReloaded 代码复杂度检查
  • JRebel Plugin 热部署
  • GsonFormat 把 JSON 字符串直接实例化成类
  • Markdown Navigator 书写 Markdown 文章
  • Eclipse Code Formatter 使用 Eclipse 的代码格式化风格
  • Jindent-Source Code Formatter 自定义类变量注释模板
  • Properties to YAML Converter 文本转换
  • mongo4idea mongo 客户端
  • iedis redis 客户端
  • shortcut translate 快捷键翻译
  • stackoverflow 堆栈分析
  • leetcode 力扣插件
  • Quick Notes 记事便利贴
  • Sonar 代码检查
  • Background Image Plus 背景图片
  • Key promoter 快捷键提示
  • Statistic 代码统计
  • jclasslib Bytecode Viewer 字节码分析插件
  • AiXcoder 人工智能代码编写

4.插件目录

idea 安装插件导致启动不了,先进入插件目录,删除新安装的插件

/Users/qinyingjie/Library/Application Support/JetBrains/IntelliJIdea2021.1/plugins

5.leetcode 插件

$!velocityTool.camelCaseName(${question.titleSlug})



package leetcode.editor.cn;

${question.content}

public class $!velocityTool.camelCaseName(${question.titleSlug}){

   public static void main(String[] args) {

       Solution solution = new $!velocityTool.camelCaseName(${question.titleSlug})().new Solution();


   }

${question.code}

}

6.MetricsReloaded 使用

圈复杂度越高,代码就越难复杂难维护

  • ev(G) 基本复杂度是用来衡量程序非结构化程度的,非结构成分降低了程序的质量,增加了代码的维护难度,使程序难于理解。因此,基本复杂度高意味着非结构化程度高,难以模块化和维护。实际上,消除了一个错误有时会引起其他的错误。
  • iv(G) 模块设计复杂度是用来衡量模块判定结构,即模块和其他模块的调用关系。软件模块设计复杂度高意味模块耦合度高,这将导致模块难于隔离、维护和复用。模块设计复杂度是从模块流程图中移去那些不包含调用子模块的判定和循环结构后得出的圈复杂度,因此模块设计复杂度不能大于圈复杂度,通常是远小于圈复杂度。
  • v(G) 是用来衡量一个模块判定结构的复杂程度,数量上表现为独立路径的条数,即合理的预防错误所需测试的最少路径条数,圈复杂度大说明程序代码可能质量低且难于测试和维护,经验表明,程序的可能错误和高的圈复杂度有着很大关系。

7.正则表达式

  • anyrule
  • option + a

8.JSON 转 java 类

  1. 下载插件,安装插件 RoboPOJOGenerator;
  2. 生成类,在创建类的包上右键新建,选择 Generate POJO from JSON;
  3. 修改名字,更具需求,选择语言、框架、主类名称;
  4. 重复的手动修改
  5. 查看生成的类,如有重复生成,手动修改(StartLoc 与 EndLoc 创建一个就行);

9.vo2dto 使用

EmployeeDTO dto = new EmployeeDTO();

EmployeeVo vo=new EmployeeVo();

1.复制 EmployeeDTO dto

2.光标放到 EmployeeVo

10.彩虹括号

插件名称:Rainbow Brackets

五.实用功能

1.Diagrams

选中接口可以展示实现类

2.热部署

热部署用 build,或者 rebuild

<!--热部署-->

<dependency>

   <groupId>org.springframework.boot</groupId>

   <artifactId>spring-boot-devtools</artifactId>

   <optional>true</optional>

</dependency>

3.列编辑

  • option+鼠标方向拖动
  • 如果不是对齐的,shift+option+鼠标左键

4.检查未使用的类变量方法

1.选择 Analyze:

选择 Analyze——》Run Inspection by Name... 或者使用快捷键 Ctrl+Alt+Shift+I

使用 Analyze 可以帮助分析未使用的方法,变量和类,帮助优化代码写法,删除不需要的代码

2.定位查找:

在弹框中输入:unused declaration

搜索未使用的声明,点击之后,等待系统分析结果.

3.选定范围:

范围选择整个项目,维度为类,字段,方法,参数,变量等.

4.查询结果:

等待下方读条结束会自动弹出 Inspection Results 弹窗

查看分析的结果,为未使用的类,方法,变量,可以进行删除,或者其他操作

5.结果处理:

对没有用到的方法和变量提供了四种处理方法

四种处理方式

  • Safe delete:删除;
  • Comment out:注释掉;
  • Add as Entry Point:添加为入口点;
  • Suppress:添加注解 @SuppressWarnings("unused") 或 @SuppressWarnings("ALL");

5.Postfix Completion

  • var 创建局部变量
  • new 创建对象
  • null 判断为 null
  • nn 判断不等于 null
  • if 判断是否为 true
  • return 返回值
  • itar for 循环
  • iter 增强 for 循环

自定义postfix:

List<$EXPR$> $END$ = new ArrayList();

6.Find Usages

  • 可以一键查看使用地方
  • 可以展开或者折叠
  • 可以预览查询到的结果
  • 可以点击上一个,下一个

7.查询字段使用位置

获取所有位置,包括子目录下面的使用的地方

8.自定义保存日志

9.文件对比

只展示不限同的点,相同的点自动影藏

10.匿名转具名

匿名内部类 -> 带名字内部类

11.搜索 git 记录

12.方法被用到的地方

  • option+7
  • option+F7

13.生成测试方法

  • control+shift+T
  • 或者直接用 apifox 插件更方便

14.查看快捷键文档

Keymap Reference

15.json2java

安装插件:

json字符串转java实体类:

  • 使用的地方有,知道 json 字符串,希望转为 java 类

六.debug

1.指定条件

  • 点击断点
  • 在输入框的 condition 输入条件
  • i=99 或者 i==99 都可以

2.stream 进行 debug

3.跳转指定行

点击行号,跳转到指定行

4.debug 回退

  • c12 表示 c 方法的 第 12 行
  • 点击右键,点击 drop frame,可以回到 c 方法的调用处

5.多线程调试

suspend:暂停,挂起

  • all:所有线程
  • thread:当前线程

手动切换:

线程状态:

6.源码断点

  • 点击 more,出现设置页面
  • Evaluate and log:打印日志

7.检测某个值

add to watches 将某个值加入到一直检测

8.下一行

9.下一个断点

10.挂起断点

control+鼠标左键

11.详细断点

  • shift+鼠标左键
  • 黄色断点不会断,红色断点才会断

12.方法断点

在接口的方法上打断点,会自动停到实现类上面去

13.打开断点面板

14.异常断点

15.字段断点

有写有操作就会在操作的地方进行断点调试

16.条件断点

17.堆栈信息

18.表达式计算

19.后面的代码不执行

20.快速到断点停顿的地方

21.方法跳入跳出

22.跳到光标

七.常见问题

1.编译版本为 5

解决办法:在父 pom 中加入下列代码

<build>

   <plugins>

       <plugin>

           <groupId>org.apache.maven.plugins</groupId>

           <artifactId>maven-compiler-plugin</artifactId>

           <configuration>

               <source>1.8</source>

               <target>1.8</target>

           </configuration>

       </plugin>

   </plugins>

</build>

2.底部不显示 commit

3.底部不显示分支

4.不显示 project 视图

IDEA 不显示项目 project 视图

问题:从 git 上下载的项目 maven+spring 项目 IDEA 不显示项目 project 视图

解决方案:关掉项目,删除 “.idea” 目录,重新 file-open 项目

5.取消换行

使用空格代替\n,替换掉换行

6.添加启动参数

--spring.profiles.active=dev --server.port=8090

7.设置忽略文件

8.查找子文件内容

9.利用 idea 发请求

POST http://localhost:9341/billInfo/insertOrUpdate

Content-Type: application/json


{"ownerNumber":"C02184540","ownerName":"黄美翰的导入门店","ownerMarketAreaId":11995,"ownerType":5,"supplierNumber":"C80095701","supplierName":"明亮邮差一","supplierType":4,"billGoodsInfoList":[{"id":1,"name":"由柑柠檬555ml(1×24瓶)","number":"CAT001","outNumber":null,"innerNumber":"CAT001","stand":"555ml(1×24瓶)","typeNumber":"037","singleUnit":"瓶","batchUnit":"箱","batchCount":1,"converseRule":24,"teuCount":null,"revCoefficien":1,"costCoefficien":null,"remark":null,"status":1,"createTime":1573457010000,"updateBy":null,"updateTime":1586504080000,"bigUnitCount":2,"smallUnitCount":0,"checked":true,"giftList":[{"name":"由柑柠檬555ml(1×24瓶)","number":"CAT001","type":1,"bigUnitCount":4,"smallUnitCount":0}],"price":0,"totalMoney":"0.00"},{"id":2,"name":"金罐250ml(1×24罐)","number":"CAT002","outNumber":null,"innerNumber":"CAT002","stand":"250ml(1×24罐)","typeNumber":"002","singleUnit":"罐","batchUnit":"箱","batchCount":1,"converseRule":24,"teuCount":null,"revCoefficien":0.72,"costCoefficien":null,"remark":null,"status":1,"createTime":1573457010000,"updateBy":null,"updateTime":1586504080000,"bigUnitCount":3,"smallUnitCount":0,"checked":true,"giftList":[{"name":"金罐250ml(1×24罐)","number":"CAT002","type":1,"bigUnitCount":3,"smallUnitCount":3}],"price":0,"totalMoney":"0.00"}],"sumMoney":"0.00","bigUnitCount":5,"smallUnitCount":0,"isCheck":0,"billType":2,"createBy":7422,"createByName":"黄美翰","createByMarketAreaId":11996,"dealAddress":"明亮科技园们门口","message":"1","giftBigUnitCount":7,"giftSmallUnitCount":3}


<> 2020-10-26T074045.200.json

添加环境:

{

 "dev": {

   "host": "localhost",

   "port": "8888"

 }

}

快速创建post请求:

指定环境运行:


相关文章
|
C语言
[字符串和内存函数]strcmp和strncmp以及memcmp的区别
[字符串和内存函数]strcmp和strncmp以及memcmp的区别
789 0
IDEA常用插件之翻译插件
IDEA常用插件之翻译插件
702 2
|
小程序 JavaScript 前端开发
微信小程序前后端交互与WXS的应用
微信小程序前后端交互与WXS的应用
627 0
|
8月前
|
人工智能 PHP 开发工具
Cursor 完全使用教程
Cursor 是由 Anysphere 实验室开发的一款 AI 驱动代码编辑器,基于 VSCode 深度定制,支持导入 VSCode 配置。相比 GitHub Copilot 插件,Cursor 在代码补全、对话生成、多文件修改等方面体验更优,支持快捷键快速调用 AI 功能,提供丰富上下文注记,提升开发效率。需订阅使用,适合追求高效编程体验的开发者。
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
565 9
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
|
SQL NoSQL 算法
Neo4j极简教程
图数据库是NoSQL类数据库的一大典型代表,在国内图数据库属于新兴事物,其优异的复杂关系解决方案引起了国内众多大型互联网公司及IT开发者的关注,而Neo4j是目前图形化数据库中最为出色、最为成熟的产品。
1386 0
Neo4j极简教程
|
Java Apache
Java解压rar5兼容rar4
【8月更文挑战第2天】在Java中解压rar5并兼容rar4格式文件通常需借助第三方库,如JUnrar。示例代码展示了如何利用JUnrar库解压rar文件:首先确保已添加JUnrar依赖,然后通过`Archive`类读取rar文件,并逐个提取非目录条目到指定路径。实际使用时需替换文件路径。也可考虑使用Apache Commons Compress库,但可能需额外配置以支持rar5和rar4。
1636 2
|
云安全 安全 Linux
钓鱼特辑(二)在红队眼皮底下拆解木马
一场牵动人心的攻防演练正在如火如荼地开展,红方每天变着花样对目标进行钓鱼攻击,亿格云枢EDR也捕获到诸多木马样本:如XX市场业务部招聘jd&福利“、个人简历docx.rar、VX截图_20240731.exe 、图片文件-XXX公司相关问题咨询20240730.zip....
|
机器学习/深度学习 人工智能 算法
【AI系统】AI 框架与编译器的作用
AI框架如PyTorch和TensorFlow提供丰富的API,简化神经网络模型的实现与训练,抽象硬件操作并自动管理内存。AI编译器将高级语言编写的模型转换为硬件可执行代码,通过多层次优化提升性能。这使得算法工程师可以专注于模型设计与创新,而无需关注底层计算细节。AI框架和编译器不仅提高开发效率,还能充分利用硬件资源,是推动AI系统性能提升的关键技术。访问昇腾社区官网或下载APP,获取更多AI学习资源和参与各类活动。
756 0
|
云安全 监控 安全
API面临哪些安全风险,如何做好API安全,有哪些对应的防护策略
在当今信息化高速发展的时代,API(应用程序编程接口)技术已成为企业数字化转型的基石,它连接着各种服务、传输数据并控制系统,成为现代数字业务环境不可或缺的一部分。然而,随着API的广泛应用,其安全性问题也日益凸显,成为了企业不得不面对的挑战。

热门文章

最新文章