封面来源:碧蓝航线 箱庭疗法 活动CG

本文大部分内容基于 IDEA 2020.3,最近更新内容基于 IDEA 2024.1

0. 前言

0.1 IDEA 简介

百度百科:

IDEA 全称 IntelliJ IDEA,是 Java 编程语言开发的集成环境。IntelliJ IDEA 在业界被公认为最好的 Java 开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE 支持、各类版本工具(Git、SVN等)、JUnit、CVS 整合、代码分析、 创新的 GUI 设计等方面的功能可以说是超常的。IDEA 是 JetBrains 公司的产品,这家公司总部位于 捷克共和国 的首都 布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持 HTML,CSS,PHP,MySQL,Python 等。免费版只支持 Java,Kotlin 等少数语言。

0.3 编写目的

在学习 Java 时,除了安装 Java 环境外,还需要安装一个 IDE(集成开发环境),比如: Eclipse、MyEclipse、IDEA 等等。如今大家使用最多的 Java IDE 是 IDEA,据说能大大提高编码效率,而从 Eclipse 或 MyEclipse 转到 IDEA 使用的用户也对 IDEA 赞不绝口。虽然我已经使用了很久的 IDEA 了,但是并没有熟练运用其特性,仅仅使用了它的自动补全。

本文意在记录我使用 IDEA 时学到的一些 “奇技淫巧” (基本操作),同时也方便后续查询,为他人提供帮助!😋

PS : 每学到新操作都会及时更新…

1. IDEA的快捷键

IDEA的快捷键,百度啥都有,这里主要介绍一些个人常用的、容易遗忘的快捷键,以及一些骚操作。😝

再喂口饭到嘴里 : 👉 IDEA快捷键整理(最详细的)

1.1 搜索查看

  1. Ctrl+N : 使用之后就可以利用类名来找到类文件 ,并且我们在使用这个快捷键搜索类名的时候也能够对我们的搜索内容自动记忆性匹配。一些非自己编写的类也可以找到,但在匹配的时候系统会优先选择自己编写的类

  2. Ctrl+Shift+N : 使用文件名来进行搜索,因此在搜索的时候只搜索类似的类,但可以匹配所有的文件

  3. Ctrl+H :查看类继承关系

  4. Ctrl+Alt+B : 要导航到抽象方法的实现,请将插入符号置于其用法或声明中的名称,然后输入快捷键

  5. Alt+F7 : 用来查找类和方法在哪里被使用的

  6. Ctrl+F : 整个页面中查找。选择某些代码,然后按下 Ctrl + F 可以在整个界面查找选中的代码,在点击顶部的Select All Occurrences图标或使用快捷键Ctrl + Alt + Shift + J 可以进行批量修改

    SelectAllOccurrences

  7. Ctrl+Shift+F : 整个项目中查找

  8. Shift+Shift : 全能! 查看文件、类、方法、内容等等。

1.2 流弊的Alt键

使用在编写代码时,经常会用到 Alt 键,使用它加上另外的键形成组合键可以增加我们的编码效率,比如:

  • 使用 Alt + Enter,可以快速修复,还可以帮助我们声明对象、变量
  • 使用Alt + Insert,可以在当前位置生成构造器、生成Getter / Setter、重写方法等

除了这两种常用的快捷组合键(履历所限,常用的就这俩),Alt 还可以与鼠标搭配使用。

Alt 与鼠标结合可以实现批量修改,具体操作是: 按住 Alt 键,再按住鼠标左键,然后移动鼠标,可以让光标延长多行,以实现批量修改。如:

alt批量修改

1.3 锁定光标处

返回上次光标处:Ctrl + Alt + ←

返回下次光标处:Ctrl + Alt + →

注意,这两个快捷键可能会与其他快捷键发生冲突,可以按照习惯进行修改。如果想要修改 IDEA 的快捷键,可以在 Settings 中进行修改:

修改光标锁定快捷键

1.4 常用快捷键

  1. Ctrl + G : 定位到当前文件的指定处
  2. Ctr + Shift + U : 对选中字符串进行大小写切换
  3. Ctrl+ Shift+ 加号:代码折叠;Ctrl + Shift + 减号:代码展开
  4. Ctrl + Alt + [ 或 ]:多项目窗口切换
  5. Ctrl + Shift + Z:取消撤销,注意可能会与搜狗输入法的快捷键发生冲突,同时 Windows 中的取消撤销是 Ctrl + Y,而在 IDEA 中,Ctrl + Y 是删除当前行
  6. Ctrl + Tab:切换编辑窗口
  7. Alt + ←或→:切换至左边或右边的 Tab
  8. Ctrl + B:相当于按住 Ctrl 后使用鼠标左击
  9. Ctrl + BackSpace:删除光标处的单词
  10. Shift + ESC:关闭侧边栏或工具栏
  11. Alt + ↑ 或 ↓:跳转到上一个或下一个方法
  12. Ctrl + E:查看最近使用的文件
  13. Ctrl + N 或者 Ctrl + Shift + N:文件搜索,也在可以使用 Double Shift 后,利用 Tab 或者 Shift + Tab 切换搜索类型
  14. Ctrl + Shift + Enter:在行尾加分号,或者为 if(condition) 添加 {} 并将光标移动至下一行
  15. Ctrl + W:以单词为单位选中文本,连续按可扩大选中范围
  16. Ctrl + Shift + Alt + N:按照 Symbols 进行搜索,也在可以使用 Double Shift 后,利用 Tab 或者 Shift + Tab 切换搜索类型。进行 Symbols 搜索时,可以通过几个字母或单词模糊搜索到对应的类或方法,也可以按照 类名.方法名 的格式模糊搜索目标类中的方法
  17. Ctrl + Shift + N:进行文件搜索,也在可以使用 Double Shift 后,利用 Tab 或者 Shift + Tab 切换搜索类型。在这种模式下,可以使用 /目录名称 的格式来搜索指定目录
  18. Ctrl + F12:在弹出框中搜索当前类的方法,也可以使用 Alt + 7 以 SideBar 的形式展示

组合的快捷键

  1. 移动分割线:使用 Alt + 1 将光标移动到 Project 视图里,使用 Ctrl + Shift + ← 或 → 来移动分割线,使得能够看到完整的文件名;使用 Alt + 9 打开 Git 视图,使用 Ctrl + Shift + ↑ 或 ↓ 来移动分割线,使得能够看到更多的 Git 提交日志
  2. 当前文件中多光标批量修改:使用 Ctrl + W 选中文本,多次使用 Alt + J 实现选中文本的多光标操作
  3. 进入不同的 SideBar:使用 Alt + F1 进入 Select In 视图,选择需要进入的 SideBar;使用 ESC 或 F4 再次将光标移动到代码里,或者使用 Shift + ESC 隐藏 SideBar 并将光标移动到代码里

ReferenceCard

双击 Shift,输入 Keyboard Shortcuts PDF 后,进入所选项即可打开 PDF 版的 IDEA 快捷键大全,该 PDF 中对各种快捷键进行了分类并描述了其主要作用。

1.5 自定义快捷键

在 IDEA 中并不是所有操作都能找到对应的快捷键,针对一些没有对应快捷键的操作我们可以自定义它们的快捷键。

比如我最近喜欢上了在 IDEA 全屏的环境下“搬砖”,但是 IDEA 全屏设置并没有对应的快捷键,只能通过点选 View - Appearance - Enter Full Screen 的方式点选,这给我带来了一定的困扰,为此我们可以自定义全屏设置的快捷键。

打开 Settings 后,找到 Keymap,然后在搜索框中输入 full 检索,找到 Toggle full screen mode 后使用鼠标右击,选择 Add keyboard Shortcut,最后在键盘上输入想要设置成的快捷键即可,比如我使用 Alt + F 作为全屏设置的快捷键。

IDEA自定义全屏快捷键

2. 奇技淫巧

2.1 后缀代码补全

使用后缀代码自动补全能够减少在编程时光标向后跳跃。

后缀提示已经成为基本提示的一部分,可以使用快捷键 Ctrl + j 直接呼出后缀提示。

Ctrl+j

常用后缀表达式

if :使用 if 检查布尔表达式是否为 true ,如:

if

else : 使用 else 可以检查布尔表达式为是否为 false ,如:

else

for : 遍历数组、集合,如:

for-iter

fori : 使用索引进行遍历,如:

fori

new : 为某个类新建一个对象,可以配合快捷键 Alt + Enter 使用,如:

new

var : 声明,效果与快捷键 Alt + Enter类似,如:

var

nn / notnull : 判断某个表达式是否非空,如:

nn与notnull

null : 检查某个表达式是否为空,如:

null

not : 取反,如:

not

return : 返回某个值,如:

return

sout : 输出某个值或直接显示System.out.println();,如:

sout

try : 在 try/catch 块中插入语句,如:

try

twr : 在 try-with-resources 块中插入语句(需要 Java 7 或更高版本),如:

twr

while : 布尔表达式为 true 时进行循环,也可以与 not 搭配使用,如:

while

cast : 强制类型转换,如:

cast

自定义后缀补全

IDEA 在 2021.1 的版本上线了自定义后缀补全的功能,使得用户能够使用除预定义之外的补全模板。

Settings - Editor - General - Postfix Completion 点击 + 号,选择需要添加的后缀补全的语言,比如选择 Java,然后就可以自定义属于自己的后缀补全了。

最近在使用流式断言神器 AssertJ,它的静态方法 Assertions.assertThat() 能够接受多种类型的参数,但在 IDEA 中提示又慢又卡(不排除是电脑的问题 😖),于是就想到了自定义后缀补全:

自定义后缀补全模板

在后缀补全展开后的表达式中,$EXPR$ 表示匹配的变量,$END$ 表示光标结尾,更多模板变量参考 Live template variables

使用效果:

自定义后缀补全assertThat

2.2 代码模板

当我们使用IDEA编写普通的Java代码时,总会用到代码模板。什么?你说你没用过?

哈哈,那你肯定是不知道你用了。😏

就像我们输入psvm时,IDEA会自动帮我们把Java中的main()方法编写出来,就像:

psvm

而这就是代码模板。又比如,我们输入St时可以直接打出String

St

但是我觉得这个有点“憨憨”的,我还要按下 Shift键输入一个大写的 S ,就不能直接输入st就显示String吗?😕

那当然是可以的,我们只需要设置一下就可以了。

使用快捷键Ctrl + Alt + S,或者点击File — Settings ,打开IDEA的设置:

Settings

在上面的图中可以看到IDEA自带的一些代码模板,我已经找到了St模板所在的位置,我们可以对它进行设置:

st

设置完成后,我们看看效果:

修改为st

🎊大功告成 🎉

除了可以修改IDEA自带的代码模板外,还支持自定义添加模板,只需要点击右上方的 + 即可,当然对于一些不想要的模板点击 -就可以删除。

3. 疑难杂症

3.1 卸载错误

有时候需要卸载 IDEA 并重装 IDEA,在卸载后应检查 C:\Users\<YOUR_USERNAME> 目录下是否有与卸载的 IDEA 相关的文件。如果有,请将他们删除,否则重装的 IDEA 可能无法启动。

3.2 快捷键冲突

全局搜索快捷键无用?

IDEA 全局搜索的快捷键是 Shift + Ctrl + F,但是在使用的时候可能会出现无用的情况,这通常是快捷键冲突了。

比如:我使用的是搜狗输入法,搜狗输入法中,Shift + Ctrl + F 是用于切换繁简的,我们只需要把这个快捷键取消或者设置为其他的组合就可以了。

无法补全 Lambda 表达式

IDEA 中的 Ctrl + Shift + Space 组合快捷键可以进行智能代码补全,主要是按预期类型筛选方法、变量列表,这经常用于补全 Lambda 表达式。

在 Windows 操作系统下,Ctrl + Space 常用于系统输入法的中/英文模式切换,这将产生快捷键冲突。

在 Windows 11 下,右击右下角输入法图标,选择 按键配置,取消勾选 模式切换 下使用 Ctrl + 空格键 进行中/英文模式切换。

Windows 11 新版输入法的 BUG

一次系统更新后,Shift + F6 重命名、Shift + F10 运行等一众快捷键全部失效,这是 Windows 11 新版输入法的 BUG 导致的,在设置中勾选 使用以前版本的微软拼音输入法 即可(或者换个输入法也行)。

设置使用以前版本的微软拼音输入法

代码格式化快捷键无用?

代码格式化默认快捷键是 Ctrl + Alt + L,可能与以下软件快捷键冲突:

  • 网易云音乐
  • QQ
  • 华硕 Armoury Crate

主要说下华硕 Armoury Crate,华硕电脑上可能会有这玩意,这玩意会悄悄更新,然后在后台自启把快捷键覆盖,巨坑! 😡

修改快捷键的位置也很隐蔽:

奥创中心快捷键设置

3.3 编译项目时出错

运行项目时,出现编译错误:

1
2
3
java.lang.ClassCastException: 
org.jetbrains.jps.builders.java.dependencyView.TypeRepr$PrimitiveType cannot be cast to
org.jetbrains.jps.builders.java.dependencyView.TypeRepr$ClassType

解决方法:

Goto menu option “Build” -> “Rebuild project” (基本上做了这一步就不会报错了)
Goto menu “File” -> “Invalidate caches / Restart…” -> “Invalidate and Restart”.

3.4 xxx 包不存在?

今天使用公司设置的命令创建 SpringBoot 项目后,用 IDEA 2020.1 打开项目并运行启动类,结果提示 xxx 包不存在,但是一看依赖,是存在的,查了好久都不知道该怎么解决。

最终发现,这是 IDEA 2020.1 的问题,于是将其卸载并安装 IDEA 2019,再次运行项目,成功地启动了项目。

如果并不是使用的这个版本的 IDEA,或许可以使用下面的方法解决:

方式一: 清除缓存并重启,注意将 IDEA 的配置进行备份。(以 IDEA 2019 为例)

清除缓存并重启

方式二: 找到对应的无法编译的模块,右键再次编译。(以 IDEA 2019 为例,圈出的两项都点一下)

右击模块并rebuild

方式三: 检查是否使用了 Lombok 插件,如果使用了,卸载插件重启 IDEA,然后再安装插件。

方式四: 执行 mvn idea:idea 命令,检查项目编码是否为 UTF-8。

执行mvn-idea命令

执行上述命令前,可以把项目内已经存在的 iml,iws,ipr 文件删掉再执行。

等待 mvn idea:idea 命令执行结束后,再执行 mvn idea:module 命令。

3.5 Coverage 窗口无法显示

在 IDEA 有一个默认自带的插件,名为 Coverage。当我们需要进行本地单元测试的时候就需要用到这个插件,具体使用方法就不赘述了。

正常情况下使用 IDEA 的 Coverage 插件进行单元测试时,当对某个测试方法或测试类测试完毕后,会在 IDEA 的右下角 Sidebar 显示一个 Coverage 的窗口,这个窗口会显示单元测试的覆盖率,比如:行(Line)覆盖率、分支(Branch)覆盖率。

但是!我在使用的时候并没有在右下角 Sidebar 出现 Coverage 窗口,同时还在控制台爆红,显示 FileNotFoundException,还提示在 C 盘用户目录下找不到某个 exec 文件。

问题的产生的主要原因就是找不到那个 exec 文件,而找不到文件的原因是用户目录是中文,产生了乱码,然后找不到文件。比如,就 IDEA 2019.3 来说,exec 文件的位置在这个文件夹下的某个目录中:

.IntelliJIdea2019.3文件夹

就是因为那个中文目录,然后产生乱码,找不到 exec 文件,才导致 Coverage 窗口没有显示。

对此,有两个方法可以解决:

1、修改用户目录

2、修改 IDEA 配置文件夹(.IntelliJIdea2019.3 文件夹)的位置

第一种方法虽然一劳永逸,但是需要修改注册表等“高端操作”,稍不注意,电脑连机都打不开。

在此选择第二种方法,下面介绍一下如何自定义 IDEA 的配置文件夹与系统文件夹的位置。

IDEA 2019 3.x 及以下版本修改配置文件夹位置

参考链接:IDEA_2019.3.2 修改默认配置文件路径

假设将配置文件夹位置转移在 D:\IDEAConfig\.IntelliJIdea2019.3 目录下,这个位置随便选,但是不要包含中文目录。

关闭 IDEA 所有的运行程序,然后需要修改系统环境变量。

如果你是 32 位操作系统,就需要添加如下两个环境变量:

1
2
IDEA_PROPERTIES=(转移之后文件夹的绝对路径)\config\idea.properties
IDEA_VM_OPTIONS=(转移之后文件夹的绝对路径)\config\idea64.exe.vmoptions

如果是 64 位操作系统,就需要添加如下两个环境变量:

1
2
IDEA_PROPERTIES=(转移之后文件夹的绝对路径)\config\idea.properties
IDEA64_VM_OPTIONS=(转移之后文件夹的绝对路径)\config\idea64.exe.vmoptions

比如我是 64 位操作系统,我就需要这样配置:

IDEA的环境变量

配置好环境变量后,前往 IDEA 安装目录的 bin 目录下,找到名为 idea.properties 的文件,打开它并添加一些配置:

1
2
3
4
idea.config.path=(转移之后文件夹的绝对路径)/config
idea.system.path=(转移之后文件夹的绝对路径)/system
idea.plugins.path=${idea.config.path}/plugins
idea.log.path=${idea.system.path}/log

比如我是这样配置的:

IDEA的idea.properties文件

最后启动 IDEA 即可。

这样在使用 Coverage 插件进行单元测试时就会在右下角 Sidebar 出现 Coverage 窗口了。

IDEA 2020 1.x 及以上版本修改配置文件夹位置

基本步骤与前文一致,先选定磁盘空间足够且不含有中文目录的一个位置存放 IDEA 配置文件,假设选定的位置是:D:/IDEAConfig/.IntelliJIdea2020.3

与前文一致,先关闭 IDEA 所有的运行程序,然后配置环境变量,比如 64 位的操作系统是这样配置的(省略 32 位操作系统的配置):

1
2
IDEA_PROPERTIES=D:\IDEAConfig\.IntelliJIdea2020.3\config\idea.properties
IDEA64_VM_OPTIONS=D:\IDEAConfig\.IntelliJIdea2020.3\config\idea64.exe.vmoptions

接下来前往 IDEA 安装目录的 bin 目录下,找到名为 idea.properties 的文件,增加与前文类似的配置:

1
2
3
4
idea.config.path=D:/IDEAConfig/.IntelliJIdea2020.3/config
idea.system.path=D:/IDEAConfig/.IntelliJIdea2020.3/system
idea.plugins.path=${idea.config.path}/plugins
idea.log.path=${idea.system.path}/log

最后启动 IDEA 即可,IDEA 启动完毕后,前往最开始选定的 D:/IDEAConfig/.IntelliJIdea2020.3 目录,可以看到自动生成了 config 和 system 目录。

那么 IDEA 2020 1.x 及以上版本的配置文件在哪呢?

1
C:\Users\用户名\AppData\Roaming\JetBrains\IntelliJIdea2020.1

IntelliJIdea2020.1 就是默认的配置文件夹。上述配置完成后,完全可以删除此文件夹,以节约磁盘空间。

3.6 国际化文件中文乱码

当使用 IDEA 进行开发,并且用到了国际化文件时,文件中可能会出现中文乱码情况:中文全都变成了 Unicode 字符,比如像这种:\u9ED8\u70E6

解决方法很简单:

File — Settings — Editor — File Encodings:

国际化文件中文乱码设置

打上勾就完事了。

3.7 找回 add 但未 commit 的代码

场景

先写了一些代码,这些代码已经被 IDEA 自动 add,但是没有 commit。

此时拉取最新的代码到本地,结果产生了冲突,由于冲突过多,打算放弃拉取,就点了 IDEA 的 rollback,结果自己编写的代码也被回滚了。

解决方式一

IDEA 有静默搁置的功能,在那里面保存了以前的代码。

在 IDEA 的工具栏找到 Git,选择 Uncommitted Changes,再点击 Show Shelf, 此时 IDEA 左侧会显示以前保存的代码,最后右击需要应用的代码,点击 Unshelve… 即可。

Show-Shelf

Unshelve

解决方式二

除了静默搁置以外,IDEA 还提供了查看文件历史的功能。

右击目标项目,找到 Local History,再选择 Show History 查看文件历史,在这里面选择被回滚的历史,右击目标历史,点击 Revert 即可还原。

3.8 IDEA 的 project 不显示项目

解决方式:关闭项目,删除项目目录下的 .idea 目录,然后重新打开项目即可解决。

3.9 使用 Optional 作为参数出现警告

当使用 JDK 1.8 引入的 Optional 作为方法参数、成员变量时,IDEA 会给出如下警告:

'Optional<xxx>' used as type for parameter 'xxx'

意思就是说 Optional 作为了参数 xxx 的参数类型。

为什么 IDEA 会给出警告呢?

Optional 的引入是为了减少空指针的出现,一般来说,针对可能返回 null 的方法可以使用 Optional 作为返回值类型。如果使用 Optional 作为参数类型,传入的参数依旧可以是 null,不仅不能避免空指针,甚至还会带来额外的判断。

如果非要使用 Optional 作为方法参数,可以用 Supplier 再包一下。

3.10 使用本地 Redis 时出现 Windows 安全中心弹窗

粗暴一点选择直接关闭防火墙。

也可以单独针对 Redis 应用,允许其通过防火墙。

3.11 no tests were found

运行单元测试方法时,控制台显示 no tests were found。尝试从以下几个角度解决:

  • 单元测试方法不能有返回值
  • 单元测试方法应该被 public 修饰
  • 项目的 .idea 文件夹和 .iml 文件路径不匹配。首先尝试删除 .iml 文件后重新打开项目,如果仍然不能解决问题,再选择将两者都删除后重新打开项目,因为 .idea 文件夹中存放了当前项目的一些配置,比如配置的远程调试端口,冒然删除会导致配置丢失

4. 基本设置

4.1 呼出 serialVersionUID

我们在使用到序列化时,难免会使用到 serialVersionUID ,serialVersionUID 是序列化前后的唯一标识符,如果没有人为显式声明过 serialVersionUID ,IDEA 会自动生成一个。

为了 serialVersionUID 的确定性,凡是 implements Serializable 的类,最好都人为地显式声明一个 serialVersionUID 的明确值。

关于序列化和 serialVersionUID 的讲解,可以参考这篇文章: 序列化/反序列化,我忍你很久了!

IDEA 是一个很棒的 Java 编译器,它可以自动帮我们生成 serialVersionUID (当然也可以手动设置),但是需要进行一些设置。

设置与呼出方式

打开 IDEA 后 ,点击 File – Settings ,然后按照下图进行设置:

serialVersionUID的设置

设置完成后,在 implements Serializable 的类上使用快捷键 Alt + Enter 即可自动添加 serialVersionUID。

4.2 导出设置文件

当我们更换或卸载旧版本的 IDEA 并安装新的 IDEA 后,需要对新版 IDEA 中的部分设置进行修改,以符合个人使用习惯。

如果每次下载新版本都重新进行设置就显得异常繁琐(设置要是比较多的话,直接爆炸 💥),IDEA 为了方便我们使用提供了导出 / 导入设置文件的选项。

在 IDEA 2020.1 的版本中,应该这样设置:

File --> Manage IDE Settings --> Import Settings / Export Settings

4.3 代码字体设置

在使用 IDEA 时,不太喜欢默认的代码字体,因此想要按照自己的习惯设置字体,在此列举一些常见的字体设置。

设置字体字号

IDEA字体与字号设置

按照上图所标识的步骤就可以实现字体与字号的设置,推荐字号为 18。关于字体,在 IDEA 2020.1 中,推荐 JetBrains Mono,个人使用起来是比较舒服的(从 IDEA 2019.3 版本开始,已经自带 Mono 字体啦)。

上图中使用椭圆圈出的设置属于设置备用字体,有些字体只有英文字体,并没有中文,可以在此处设置备用字体以正确显示中文(推荐使用 SimHei 作为备用字体以显示中文,感觉还不错)。

IDEA 还支持使用鼠标滚轮来调整字体大小,具体设置如下:

Settings > Editor > General > 勾选 change font size whith ctrl+mouse wheet 即可

字体加粗

IDEA 默认的字体是细细的,像我这种近视玩家看着就有点费劲,IDEA 当然也可以设置字体加粗,具体操作如下:

IDEA代码字体加粗

像上面这样设置后,IDEA 中代码和注释的字体会加粗,但是文档注释的字体并不会加粗,如果想要将文档注释字体也加粗,可以这样设置:

IDEA文档注释字体加粗

这里还把文档注释的字体颜色设置为 629755,可以试一试~

修改代码注释字体颜色

IDEA 中代码注释字体的颜色是灰色的,在黑色背景下不是很明显,看得比较吃力,我们可以这样设置一下以修改注释的字体颜色:

IDEA修改注释字体颜色

我设置的字体颜色代码是 36806E,自我感觉看着比较舒服,当然你也可以设置成自己喜欢的颜色。

Block comment 是块注释,Line comment 是行注释,可以按需分别自定义。

4.4 自动导包

只需要这样设置即可:

自动导包设置

4.4 Alt + Enter 生成变量

IDEA 中 Alt + Enter 快捷键是可以生成变量的,如果这个快捷键失效了,我们可以这么进行设置(本节基于 IDEA 2019.3 进行说明)。

1、在 Keymap 中搜索 Show Context Actions 这个快捷键(如果版本较低,可以搜索 Show Intention Actions):

Show-Context-Actions

2、然后在 Settings 中的 Editor 的 Intention 一栏中搜索 Refactorings,然后进如下的设置即可:

Intention中搜索Refactorings

4.5 项目中显示 target 目录

在 IDEA 的项目目录中,可能无法看到 target 目录,但是有时候我们又需要使用到这个目录,那怎么显示 target 目录呢?

以 IDEA 2019.3 为例,单击目录上的 ⛭ 小齿轮 Show Options Menu

Show-Options-Menu

然后勾选 Show Excluded Files 即可:

Show-Excluded-Files

4.6 只加载本地仓库依赖

现在有这样一个场景:当进行多人协同开发时,我的模块 A 依赖了同事的模块 B,A、B 模块分处不同的项目中,模块 B 为模块 A 提供了基础组件能力。这时我发现了模块 B 的 BUG,让同事修改后本应推送至 GitLab,然后使用 Jenkins 构建,构建完成后我再重新导入所有 Maven 工程,拉取到同事修改完成的代码。但是由于某种原因,公司 master 收回了所有人的代码 push 权限,无法将修改后的代码推送至 GitLib,那这时应该怎么办呢?

同事修改完代码后,利用 mvn install 将修改后的代码打包至本地 Maven 仓库,然后将手动打包的 jar 包所在文件夹(本地 Maven 仓库中)发送给我,替换我本地 Maven 仓库中的文件夹。

但是这样又有一个问题,进行替换后,IDEA 的索引失效,需要重新导入 Maven 工程,但我重新导入时又会拉取远程仓库中的 jar 包,这怎么办呢?

如果可以在重新导入 Maven 工程时只加载本地依赖,而不拉取远程仓库依赖不就可以了?对 IDEA 进行以下配置即可:

设置Maven离线模式

勾选上图中的序号 1 对应的所圈选项即可,这样的话 Maven 将使用离线模式,重新导入 Maven 工程时只加载本地 Maven 仓库的代码,而不会再从远程仓库中拉取。

除此之外,上图中还有一个序号 2,将此选项勾选后,每次重新导入 Maven 工程时将会拉取远程 Maven 仓库中最近一次快照的 jar 包,以避免 Jenkins 构建后无法从远程 Maven 仓库拉取到最新代码的情况。

5. 一些小技巧

5.1 Bookmarks

在处理大型项目或阅读源码时,搜索文件或文件夹是非常耗时的。针对这种情况,IDEA 提供了 Bookmarks(书签)的特性。在 IDEA 中不仅可以将重要代码的所在行标记为书签,也可以将文件、文件夹、包、模块和类标记为书签。

以常用的将某行代码标记为书签为例,IDEA 提供了以下操作方式:

  • 创建匿名书签:在目标行键入 F11,再次键入 F11 可以删除该书签

  • 基于匿名书签创建助记书签:先创建匿名书签,然后使用 Ctrl + F11 呼出 Add Mnemonic Bookmark 菜单,然后按下 0-9 或 A-Z 中的某个键即可为书签添加助记符

  • 快速创建助记书签:在目标行键入 Ctrl + Shift + 数字键,这种方式只支持 0-9 共十个数字助记书签的添加

  • 打开 Bookmarks 菜单查看所有书签:在弹窗中显式:Shift + F11,在侧边栏中显式:Alt + 2

  • 快速跳转到某个数字助记标签:Ctrl + 数字键

在 Bookmarks 菜单中支持以下快捷键对选中书签进行操作:

  • 跳转到选中书签标记的行:Enter
  • 修改选中书签描述:F2
  • 删除选中书签:Delete
  • 修改选中书签助记符:Ctrl + F11