当前位置:   article > 正文

IDEA使用指南

idea使用


 

常用快捷键

全局操作

双击Shift  # 查找文件、符号等

Ctrl + E  # 最近文件、控制台菜单 列表

Alt + F12  # 打开终端


ALt + 9  # 打开git控制台
Alt + 0 或者 Ctrl + K   # 提交到本地仓库
Ctrl + Shift + K  # 提交到本地仓库


Shift + F9  # debug
Shift + F10  # run
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

 

查看、分析代码

F2  # 跳转到报红的代码处
Alt + Enter # 光标移到报红的代码上时,按这个快捷键可以查看建议


Ctrl + H  # 查看当前类的继承关系(列表缩进格式)
Ctrl + Shift + Alt + U  #查看当前类 diagram 类图,会展示类的成员、类之间的继承关系
Ctrl + Alt + U  # 查看当前类 diagram 类图(弹窗形式)


Ctrl + F12   # 查看当前类的成员(变量+常量+方法)
Alt + 7   # 查看当前类的结构(Structure),包括从父类继承的成员
Alt + F7   # 查找当前变量、方法、类的所有使用处


Alt + 上下方向键   # 跳转到到当前类中的上/下一个方法 
Alt + 左右方向键   # 切换到上/下一个标签页
Ctrl + Alt + 左/右方向箭   # 跳转到鼠标点击历史中的上/下一步


Ctrl + B  #转到定义处
Ctrl + G  #跳转到指定行
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

 

编辑

Ctrl + C  # 复制当前行
Ctrl + X  # 剪切当前行
Ctrl + Y  # 删除当前行

Ctrl + D  # 复制当前行并在下一行粘贴出来

Ctrl + Shift + Z  # 重做

Ctrl + Shift + 向上|下箭头  # 将当前行上/下移
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
Ctrl + I  # 实现继承的抽象类、接口中的方法

Alt + Insert  # 自动插入构造器、getter、setter、单元测试等方法,重写toString、hashCode、equals等方法
#也可输入equals、toString等关键字生成


Ctrl + /  # 单行注释
Ctrl + Shift + /  # 文档注释


Ctrl + Alt + V  # 自动声明变量

Tab|Enter  # 自动补全


Ctrl + [|]  #高亮显示代码块开头结尾的大括号,[是跳到代码块的{处,]是跳到代码块的}处,再次按[|]扩大范围


Ctrl + Alt + Enter  #在当前行上方插入新行

Ctrl + Backspace  #向前删除一个单词|符号
Ctrl + Delete  #向后删除一个单词|符号


Ctrl + W   # 选中整个单词,再按扩大范围
Ctrl + Shift + W  # 缩小选中范围


Ctrl + Shift + U  # 转换为全大|小写


sout  # 输出
souf  # 格式化输出
soutp  # 输出当前方法所有的参数值
  • 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
  • IDEA支持范围替换,先选中范围再Ctrl+R,则只在选中范围内进行替换
  • 选中后,按 ()小括号、[ ]中括号、{ }大括号、<>标签、"“双引、''单引时,会自动包含所选内容,比如给字符串加双引号,选中之后按 Shift+” 即可

 

常用技巧

运行项目的多个实例

在这里插入图片描述
如果是web项目,需要在Program arguments中修改端口号

-server.port=9000
#或者
-Dserver.port=9000

#在命令行下 java -jar 启动web项目时也可以设置此参数
  • 1
  • 2
  • 3
  • 4
  • 5

实质都是以命令行参数的形式传入,此种方式设置的参数优先级最高,会覆盖配置文件中对应的配置

 

全局查找、替换,正则匹配

Ctrl+Shif+F/R,也可以右键 Find/Replace in Path,或者 Edit -> Find -> Find/Replace in Path。可以选中目录后操作,也可以直接操作。
 

正则匹配

示例:将key、value都加上引号

username: chy,
password: abcd,
tel: 188xxxxxxx,
birthday: 2000-01-01 00:00:00,
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

  • 可以用 () 括起来作为一个整体,引用时依次对应 $1、$2、$3
  • 换行对应 \n

 

项目启动后自动在浏览器中打开

在这里插入图片描述
勾选After launch,在项目启动后会自动在指定浏览器中打开指定页面。

可以设置使用的浏览器、打开的页面。

 

使用关联应用打开对应的文件

idea不能识别某些类型的文件,比如.xmind,双击打开时可以选择用操作系统中的关联应用打开
在这里插入图片描述
 

如果上面选成了第一个:作为 text 文件打开,可以在 text 中移除该种文件类型,再在使用关联应用打开中加上
在这里插入图片描述
在这里插入图片描述

 

代码重构
  • Shift+F6 重命名类名、方法名、变量名
  • Ctrl+Shift+F6 修改数据类型
  • Ctrl+Alt+M 提取代码段为方法

 

debug
  • 执行到某个断点时,可以按 Alt+F8 写变量的一些表达式,回车查看结果。
  • 直接在方法上打断点,debug时会自动在方法体的第一行、最后一行打断点停留,适合查看方法入参、返回值。
  • F9 跳转到下一个断点,如果断点时一个方法,可以按 F7 进入方法内部。
  • 条件断点:常用于循环、多次执行的情况,右击断点写条件,当变量满足条件才停下。条件直接写if()括号中的部分。
  • 异常断点:不需要手动打断点,Ctrl+Shift+F8,点击+号添加要监测的异常,发生该种异常时自动停下。取消勾选即去掉该异常监测。
  • 多线程调试:右击断点选择Thread,如果异常端点 Ctrl+Shift+F8 右侧选择 Thread 。

 

远程debug

远程debug可以在本地idea中直接调试远程服务器上运行的java应用,前提是idea本地代码、远程服务器上的代码是一致的。
 

远程服务器上启动应用时,需要添加远程debug的jvm参数,指定远程debug使用的端口

#此处指定远程debug使用9000端口
java -Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=9000 -jar xxx.jar
  • 1
  • 2

 
如果使用的是外置tomcat,修改bin/catalina.sh,在开头加上一行

CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=9000"
  • 1

 
IDEA配置
在这里插入图片描述
 
具体原理可参考:https://blog.csdn.net/qq_37192800/article/details/80761643

 

同时对多行代码进行相同、相似的编辑

比如 jpa、swagger,在实体类属性上都要加相同|相似的注解。

选中要同时编辑的部分:按住Alt + 鼠标左键向下拖 ,也可以直接按住鼠标滚轮往下拖。

 

文件、目录比较

选中要比较的文件|目录,右键 Compare Files | Directories,和git合并冲突一样,对比时可以直接编辑文件内容。

 

常用设置

注释与代码对齐

一般修改java、html、xml的即可,js默认就是对齐的,不用改
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
 

创建类时自动在注释中提供作者信息、日期

在这里插入图片描述

/**
 *
 * @author chy
 * @version 1.0
 * @date ${DATE}
 */
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

 

添加mybatis映射文件的模板

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="">
    
</mapper>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

添加后,new新建文件时就有相关选项了。

 

mybatis xml映射文件、sql脚本中的表名、字段名报红

在这里插入图片描述
 

常用插件

Material Theme UI
一个不错的theme插件,提供了多种主题,使用免费版即可。
 

Translation
翻译。选中要翻译的部分,Ctrl+Shif+Y 英汉互译,Ctrl+Shift+X 翻译并替换。

内地不能直接使用谷歌翻译,在hosts中指定谷歌翻译对应的ip也不行,如果有梯子的话可以通过设置idea的代理解决,参考:https://github.com/YiiGuxing/TranslationPlugin/issues/2296
在这里插入图片描述
 

SequenceDiagram
时序图,时序图常用于分析方法的调用流程。

对方法名单击右键 -> Sequence Diagram -> 选择深度、是否只展示本项目中的类等选项。

 

lombok
编译时自动生成一些方法

 

Free MyBatis plugin 或 MyBatisX

mapper接口、xml映射文件之间的快速跳转。

Free MyBatis plugin 是绿色箭头样式,MyBatisX是小鸟样式。

Free MyBatis plugin 的作者转行了,不再维护此插件,从 idea 2021版本开始在idea插件市场中已经搜不到这个插件,可以用 MyBatisX 代替。

 

intellij-mybaitslog

可以在yml中配置mybatis打印日志,但打印的sql语句、参数是分开的,需要手动拼接才能得到可直接执行的sql

==>  Preparing: select * from t_user where id = ?
==> Parameters: 1(Integer)
  • 1
  • 2

 
Mybatis Log Plugin 可以拼接sql参数,打印可直接执行的sql,方便但收费。可以使用 intellij-mybaitslog 代替,作者没有将此插件发布到 idea插件市场,需要到 github 下载后从硬盘安装。

github地址:https://github.com/Link-Kou/intellij-mybaitslog
 

原理是截取mybatis打印的sql日志,来拼接sql语句,所以需要在打开 mybatis log窗口后才打印sql日志,且需要在yml中配置mybatis打印sql语句,这样才能截取到

mybatis:
  configuration:
    # org.apache.ibatis.logging.slf4j.Slf4jImpl
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  • 1
  • 2
  • 3
  • 4

 

MyBatisCodeHelperPro
mybatis逆向工程,根据数据表生成代码

 

编码规范检查

  • Alibaba Java Coding Guidelines
  • SonarLint:如果配置 SonarQube/SonarCloud connections 时报错,通常是插件插件版本太高、不兼容导致的,可以尝试安装更低版本的插件。
  • CheckStyle:如果配置 checkstyle.xml 时报错,通常是选择的版本太高,可以尝试调低一些
    在这里插入图片描述

 

Maven Helper
依赖分析、解决依赖冲突

 

GenerateSerialVersionUID 生成序列化的UID

Alt+Insert,选择 SerialVersionUID 即可自动给当前类生成序列化的UID。

对象序列化时会记录类的当前版本,反序列化时会将该类的当前版本与记录的版本(UID)比较,要一致才可以反序列化。
在这里插入图片描述

 

Convert YAML and Properties File
yml、properties文件转换,转换时会自动删除注释。

 

Vue.js Vue代码提示

 

String Manipulation 字符串处理

可在 Keymap -> Plugins -> String Manipulation 设置相关快捷键。

最常用的2种命名是camel、常量名的snake,我习惯与sublime保持一致,设置为 Ctrl + Alt + C + C
在这里插入图片描述

 

Easy Code 代码生成工具
MBG可以生成mapper接口、xml映射文件、entity,但需要在pom.xml中加一些MBG的配置,对项目文件有侵入,且不能指定生成文件的模板,太麻烦,一般不用。

EasyCode是IDEA的一款插件,更加简单强大,可以根据数据表生成entity、controller、service、dao|mapper,对项目文件没有侵入,可以指定生成文件的模板,支持效果预览。

自定义模板使用的velocity的语法,可参考
https://www.cnblogs.com/yangzhinian/p/4885973.html

 

Squaretest 生成单元测试
在目标类中 Alt+Insert -> Generate Test - Confirm Mocks,选择要mock的成员。初次使用时还需要选择模板,通常选择 JunitMockitoSpring.java.ft 。

IDEA自带了单元测试生成,在目标类中 Alt+Insert -> Test,但功能单一,只生成测试类、测试方法,不会自动注入依赖、自动mock。

TestMe之类的插件也可以生成单元测试,但提供的模板不好用。

 

SVNLabel 查看svn提交信息

 

Codota AI AutoComplete for Java and JavaScript 代码AI提示

 

常见问题

Alt+Inser失效,单击右键没有Generate

原因是禁用了2个自带的插件,启用即可
在这里插入图片描述
 

右键没有Diagrams,Ctrl+Alt+U失效

原因是禁用了自带的UML,在已安装中搜索uml,启用即可
在这里插入图片描述
 

导入Eclipse项目时,编译报错“ Error:(1, 1) java: 非法字符: ‘\ufeff’”

点击IDEA右下角的编码字符集,先转换(convert)为GBK,再转回为UTF-8
在这里插入图片描述
 

使用Spring Initializr创建项目时,提示无法连接到https://start.spring.io

在这里插入图片描述
点击“Check connection”测试一下配置,输入 https://start.spring.io ,提示连接成功,就说明弄好了。

此方法不一定有用,有时候歇几个小时就可以连上了

 

IDEA不能识别spring、springboot项目

项目结构 -> Modules -> 看一下有没有配置spring,spring的配置是否正确

在这里插入图片描述
 

在Marketplace中搜索插件一直显示无结果

重启IDEA后重试,如果还是不行,可以尝试以下2种方式

1、使用代理
在这里插入图片描述
在这里插入图片描述
 
2、到官网搜索下载插件,然后从硬盘安装插件

https://plugins.jetbrains.com

插件版本要与IDEA版本对应

 

IDEA控制台乱码

1、修改IDEA的文件编码
在这里插入图片描述
 
2、修改IDEA的配置文件
在这里插入图片描述
用记事本打开这2个文件,分别在末尾添加一行

-Dfile.encoding=UTF-8
  • 1

重启IDEA生效
 

3、如果是使用tomcat运行web项目,tomcat在IDEA控制台的输出乱码,还需要修改tomcat配置文件

tomcat -> conf -> logging.properties -> 搜索console

java.util.logging.ConsoleHandler.encoding = GBK   #把UTF-8改为GBK
  • 1

重启tomcat(项目)生效

 

边角上一些小的bar不见了

View -> Appearance -> 勾选需要的bar

eg. 右上角的run、debug、版本控制的工具栏不见了,勾选Navigation Bar

 

一些常用的快捷键用不了

eg. Ctrl+Alt+V用不了
一般是因为快捷键被其它程序占用了,常见的比如qq、搜狗输入法、有道词典,检查这些软件的快捷键设置

 

IDEA很卡,经常提示“Low Memory,The IDE is running low on memory and this might affect performance”

排除硬件因素,常见的原因、解决方式如下
 

卸载多余的插件
 

清除缓存
可能是IDEA的缓存过多,可以 File -> Invalidate Caches/Restart 清除缓存,治标不治本
 

不管理冗杂、不必需的目录
可能是IDEA管理了很多冗杂、不必需的目录,导致内存占用较多,常见的表现形式是进入项目时index时间长。

常见的不应该建立索引的目录:java的target目录,vue的node_modules、dist目录,主要是node_modules目录

对node_modules目录单击右键 -> Mark Directory as -> Excluded,排除在IDEA的管理之外。

也可以在项目结构 -> Modules -> Excluded 中设置、恢复。
 

设置的内存太小
修改IDEA bin目录下的idea64.exe.vmoptions

-Xms4096m
-Xmx4096m
-XX:ReservedCodeCacheSize=1024m
-XX:MaxMetaspaceSize=2048m
  • 1
  • 2
  • 3
  • 4

在Help -> Edit Custom VM Options中也可以编辑idea64.exe.vmoptions文件,但文件位置不同,不是用同一个文件,bin下的是IDEA默认的配置,Help中的是用户配置,如果2个文件同是存在,用户配置的优先级更高。

-Xms、-Xmx的值一般设置相同的,防止堆扩容造成程序运行不稳定。

重启IDEA生效

 

双击IDEA图标启动不了IDEA

不管是双击IDEA的桌面图标,还是双击IDEA的exe文件,都启动不了IDEA。

一般是设置内存时,最大堆内存比最小堆内存小导致的

  • 如果 C:\Users\用户名.IntelliJIdea\config下有 idea64.exe.vmoptions 这个文件,检查这个文件中配置的最大堆内存、最小堆内存
  • 如果没有,则检查 IDEA bin目录下的idea64.exe.vmoptions中配置的最大堆内存、最小堆内存

将最大堆内存、最小堆内存设置为相同的即可。

C:\Users\用户名.IntelliJIdea\config、IDEA的bin目录下都有这个配置文件,但前者是用户配置,优先级更高,后者是默认配置。

如果还不能启动IDEA,可以删除 C:\Users\用户名.IntelliJIdea ,但启动后要重新配置IDEA的各种配置

 

启动项目时报错 Caused by: java.nio.charset.MalformedInputException: Input length = 1

原因:文件的编码字符集不对。

解决方式:

  • 我尝试修改了字符集设置,无效
  • 将字符集不对的文件重命名,新建同名文件,把内容拷过去,删除原文件。有效

 

启动项目时报错:命令行太长

Error running ‘act-center’:
Command line is too long. Shorten command line for act-center or also for Spring Boot default configuration?

可以尝试以下2种解决方式

方式一、在运行配置中设置短命令行,选择 JAR manifest 或 classpath file
在这里插入图片描述
可以左下角配置模板,对以后的单元测试都有效

 

方式二、.idea/workspace.xml,搜索 <component name="PropertiesComponent">,启用动态classpath

<!-- 启用动态classpath -->
<property name="dynamic.classpath" value="true" />
  • 1
  • 2

 

maven已导入依赖,但一直报错找不到该依赖中的类

原因是IDEA没有识别到对应的jar包,可以尝试以下几种解决方式

  • 在项目结构中以jar包方式直接添加
  • 像入门学jdbc时一样,在resources下新建一个文件夹来放置依赖,右键添加

 

编译、启动时报错找不到符号

如果确认项目配置、代码没问题,可以尝试以下几种方式

  • mvn clean、compile
  • mvn clean、package
  • IDEA 清除缓存并重启

 

maven package后没有target文件夹

在资源管理器中查看,确实生成了target文件夹。

解决方式
在这里插入图片描述
 

Ctrl+Shift+F失效

原因是与其他软件的快捷键冲突,我的是与搜狗输入法的冲突。

 

markdown文档无法预览、一片空白
  • 检查IDEA文件编码设置
  • 检查markdown配置
    在这里插入图片描述
body {
    font-family: 'WenQuanYi Micro Hei', arial, sans-serif;
}
code {
    font-family: 'WenQuanYi Micro Hei Mono', arial, sans-serif, monospace;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/677199
推荐阅读
相关标签
  

闽ICP备14008679号