热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

(Java)IntelliJIDEA2021.1使用技巧、常用快捷键大全(win+mac)

目录

目录

  • 二、配置、使用技巧、常用快捷键
    • 2.1 常用的快捷键总结
      • 2.1.1 MAC中IntelliJ IDEA快捷键
    • 2.2 实时代码模板
    • 2.3 inject language
    • 2.4 批量修改
    • 2.5 symbol,模糊查找,只记得某几个字母
    • 2.6 自动生成not null判断语句
    • 2.7 本地历史版本
    • 2.8 代码调试
    • 2.9 各种插件
  • 三、使用要求
    • 3.1 不允许出现魔法值

二、配置、使用技巧、常用快捷键

推荐下文的基本配置和快捷键总结,另外编码效率方面讲的也十分不错。
常用的配置可见:配置

IEDA各种功能介绍和使用讲解
IntelliJ IDEA神器使用小技巧

2.1 常用的快捷键总结

快捷键大全

查找替换搜索介绍
Ctrl + F当前文件中文本查找 (必备)
Ctrl + R当前文件中文本替换 (必备)
Ctrl + shift + F根据输入内容查找整个项目 或 指定目录内文件 (必备)
Ctrl + shift + R根据输入内容替换对应内容,范围为整个项目 或 指定目录内文件 (必备)
shift + shift快速搜索
代码编写介绍
Ctrl + W递进式选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展选中范围 (必备)
Ctrl + D复制光标所在行 或 复制选择内容,并把复制内容插入光标位置下面 (必备)
Ctrl + /注释光标所在行代码,会根据当前不同文件类型使用不同的注释符号 (必备)
Ctrl + shift + enter代码自动补全,自动结束代码,行末自动添加分号,或者在输入if等语法后自动添加花括号(必备)`
Alt + EnterIntelliJ IDEA 根据光标所在问题,提供快速修复选择,光标放在的位置不同提示的结果也不同 ,例如根据当前行代码创建还未定义的函数(必备)
Alt + Shift + 鼠标点击多行光标(必备)
shift + enter行中回车,开辟下一行(必备)
Ctrl + Alt + L格式化代码,可以对当前文件和整个包目录使用 (必备)
Ctrl + Alt + O优化导入的类,可以对当前文件和整个包目录使用 (必备)
Ctrl + Alt + 左方向键退回到上一个操作的地方 (必备)
Ctrl + Alt + 右方向键前进到上一个操作的地方 (必备)
Ctrl + Shift + J自动将下一行合并到当前行末尾 (必备)
Ctrl + Shift + Z取消撤销 (必备)
Ctrl + Shift + W递进式取消选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展取消选中范围 (必备)
Ctrl + Shift + N通过文件名定位 / 打开文件 / 目录,打开目录需要在输入的内容后面多加一个正斜杠 (必备)
Ctrl + Shift + U对选中的代码进行大 / 小写轮流转换 (必备)
Ctrl + Shift + P代码智能提示 (必备)
Ctrl + P方法参数提示显示 (必备)
Ctrl + Shift + /代码块注释 (必备)
F2跳转到下一个高亮错误 或 警告位置 (必备)
F11添加书签(必备)
Ctrl + shift + L格式化代码(必备)
shift + F6快速修改方法签名(必备)
ESC从工具窗口进入代码文件窗口
Home快速移动光标到行首
End快速移动光标到行尾 (必备)
Alt + Shift + 前方向键移动光标所在行向上移动 (必备)
Alt + Shift + 后方向键移动光标所在行向下移动
Shift + Tab取消缩进
Ctrl + alt + 左右跳转历史光标所在处 (必备)
alt + 左右切换子tab
Ctrl + Y删除整行
Ctrl + B进入光标所在的方法/变量的接口或是定义出,等效于 Ctrl + 左键单击
Ctrl + Z、Ctrl + shift + Z撤销与取消撤销
alt + insert代码自动生成,如对象的set / get方法,构造函数,toString()(必备)
Ctrl + alt + T代码包裹功能,快速将选中的代码块包裹到选择的语句块中(if,while等(必备)
调试介绍
Shift + F10等效于点击工具栏的 Run 按钮,程序为上次运行的程序(必备)`
Ctrl + Shift + F10在当前程序,Run 按钮 (必备)
Shift + F7在 Debug 模式下,智能步入。断点所在行上有多个方法调用,会弹出进入哪个方法
Shift + F8在 Debug 模式下,跳出,表现出来的效果跟 F9 一样
Shift + F9等效于点击工具栏的 Debug 按钮
F7在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中
F8在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内
F9在 Debug 模式下,恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上
F12回到前一个工具窗口,比如跳转到run界面 (必备)
ESC从工具窗口进入代码文件窗口
其它介绍
Ctrl + Dshow Diff
Alt + 7显示structure窗口,方便查看类中的方法结构(推荐)

2.1.1 MAC中IntelliJ IDEA快捷键

快捷键组合(编码相关)快捷键作用
command+C复制
command+X删除一行/剪切
command+delete删除行
command+V粘贴
command+D复制上一行
command+E打开recent Files
command+W关闭当前类窗口
comand+K打开commit,可按需选择提交的文件
command+O查找打开类文件
command+F当前文本查找(可上下键切换)
command+⇧+F全局查找
command+R当前文本替换
command+⇧+R全局替换
alt+上下扩展选择
command+N生产代码 getter、setter等等
command+P显示方法的详细参数
command+S保存
command+Z撤销一步
command+G定位,配合查找使用更方便
command+/(注意输入法要在英文状态)注释/解除注释
control+⇧+/(注意输入法要在英文状态)注释:/**/
command+option(alt)+L格式化代码
control+空格(注意默认冲突)代码补全
control+option+空格(注意默认冲突)智能代码补全
control+option+O去除无效import
Command+Option+方向键左 / 右退回 / 前进到上一个操作的地方
command+鼠标悬停,点击查看方法说明,进入方法
command/alt+shift+上下代码上下移动行
Command + alt + T代码包裹功能,快速将选中的代码块包裹到选择的语句块中(if,while等) (必备)

快捷键组合(工具相关)

快捷键组合(工具相关)作用
command+,打开preferences
command+回车(选择工程)打开resource
⇧+F6重命名(按F几的同时需要按左下fn)
⇧+F9编译当前工程
Control + R运行工程
Control + Ddebug工程

快捷键组合(调试相关)

快捷键组合(调试相关)作用
F8进入下一步,如果当前行断点是一个方法,则不进入当前方法体内
F7进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中
Shift + F7智能步入,断点所在行上有多个方法调用,会弹出进入哪个方法
Option + F9运行到光标处,如果光标前有其他断点会进入到该断点
Command + Option + R恢复程序运行,如果该断点下面代码还有断点则停在下一个断点上
Command + F8切换断点(若光标当前行有断点则取消断点,没有则加上断点)
Command + Shift + F8查看断点信息

2.2 实时代码模板

这个太好用了。Settings——Editor——Live Templates中可以看到
常用的有,持续记录更新:

输入效果
soutSystem.out.println()

2.3 inject language

如果你使用IDEA在编写JSON字符串的时候,然后要一个一个\去转义双引号的话,就实在太不应该了,又烦又容易出错。在IDEA可以使用Inject language帮我们自动转义双引号。
在这里插入图片描述

先将焦点定位到双引号里面,使用alt+enter快捷键弹出inject language视图,并选中 Inject language or reference。
在这里插入图片描述
选择后,切记,要直接按下enter回车键,才能弹出inject language列表。在列表中选择 json组件。
在这里插入图片描述
选择完后。鼠标焦点自动会定位在双引号里面,这个时候你再次使用alt+enter就可以看到
在这里插入图片描述
选中Edit JSON Fragment并回车,就可以看到编辑JSON文件的视图了。
在这里插入图片描述
可以看到IDEA确实帮我们自动转义双引号了。如果要退出编辑JSON信息的视图,只需要使用ctrl+F4快捷键即可。

2.4 批量修改

首先是使用ctrl+w选中rabbitTemplate这个文本,然后依次使用5次alt+j快捷键,逐个选中,这样五个文本就都被选中并且高亮起来了,这个时候就可以直接批量修改了。
在这里插入图片描述
在这里插入图片描述

2.5 symbol,模糊查找,只记得某几个字母

如果你依稀记得某个方法名字几个字母,想在IDEA里面找出来,可以怎么做呢?
直接使用ctrl+shift+alt+n,使用symbol来查找即可。
比如说:
在这里插入图片描述
你想找到checkUser方法。直接输入user即可。
在这里插入图片描述
如果你记得某个业务类里面有某个方法,那也可以使用首字母找到类,然后加个.,再输入方法名字也是可以的。
在这里插入图片描述

2.6 自动生成not null判断语句

当我们使用rabbitTemplate. 后,直接输入notnull并回车,IDEA就好自动生成if判断了。
在这里插入图片描述
在这里插入图片描述

2.7 本地历史版本

2.8 代码调试

  • 视图模式:
    (1)Presentation Mode - 演示模式,专门用于Code Review这种需要展示代码的场景。使用方法alt + V弹出View,然后选择Enter Presentation Mode,之后,可以在view中选择Exit Presentation Mode。但是完全没必要退出,因为当你对IDEA足够熟悉的时候,可以在演示试图中做任何事情。
    在演示模式中,可以使用快捷键进行操作,更加方便。
快捷键说明
Ctrl + E弹出最近使用的文件
Ctrl + N定位文件
Ctrl + shift + N定位文件

(2)Distraction Free Mode - 禅模式

  • 条件断点
  • 强制返回
    在打断点的方法栈处,强制返回你想要的方法返回值给调用方。
  • 模拟异常
    IDEA 可以在打断点的方法栈处,强制抛出异常给调用方。这个在调试源码的时候非常有用。
  • Evaluate Expression:IDEA 还可以在调试代码的时候,动态修改当前方法栈中变量的值,方便我们的调试。

2.9 各种插件

见IEDA各种功能介绍和使用讲解文尾

三、使用要求

3.1 不允许出现魔法值

魔法值即未经预先定义的常量。
消除魔法值的几种方式

1、静态常量取代魔法值
在这里插入图片描述

2、枚举类取代魔法值

还有一种消除魔法值的方式是使用枚举类代替,下面让我们举个例子:

if (eventId == 1) {
System.out.println("睡觉");
} else if (eventId == 2) {
System.out.println("吃饭");
} else if (eventId == 3) {
System.out.println("打豆豆");
}

如上代码是针对事件 id 去执行相应的事件,如果事件比较少,大家还可以勉强记住每个 eventId 对应的含义,但是随着事件 id 的增多,很可能会发生,新来的员工把事件 id 给搞混了,导致执行错误的事件,发生 bug。

那么我们可以使用枚举类来表示相应的事件:

public enum EventEnum {

/**
* 睡觉
*/

SLEEP_EVENT(1, "睡觉"),

/**
* 吃饭
*/

EAT_EVENT(2, "吃饭"),

/**
* 打豆豆
*/

FIGHT_PEA_EVENT(3, "打豆豆");

private int eventId;
private String desc;

EventEnum(int eventId, String desc) {
this.eventId = eventId;
this.desc = desc;
}

public int getEventId() {
return eventId;
}

public String getDesc() {
return desc;
}
}

修改完之后的代码如下:

if (eventId == EventEnum.SLEEP_EVENT.getEventId()) {
System.out.println("睡觉");
} else if (eventId == EventEnum.EAT_EVENT.getEventId()) {
System.out.println("吃饭");
} else if (eventId == EventEnum.FIGHT_PEA_EVENT.getEventId()) {
System.out.println("打豆豆");
}

是不是可读性急剧提升,还不快看看自己代码中有没有这样的魔法值出现,有的话赶紧改造起来。

还有如果你需要在不同的地点引用同一数值,魔法数会让你烦恼不已,因为一旦这些数字发生改变,就必须在程序中找到所有的魔法值,并将它们全部修改一遍,这样就太费时费力了。


推荐阅读
  • WinMain 函数详解及示例
    本文详细介绍了 WinMain 函数的参数及其用途,并提供了一个具体的示例代码来解析 WinMain 函数的实现。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 未定义的打字稿记录:探索其成因与解决方案 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 在C#编程中,数值结果的格式化展示是提高代码可读性和用户体验的重要手段。本文探讨了多种格式化方法和技巧,如使用格式说明符、自定义格式字符串等,以实现对数值结果的精确控制。通过实例演示,展示了如何灵活运用这些技术来满足不同的展示需求。 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • Java高并发与多线程(二):线程的实现方式详解
    本文将深入探讨Java中线程的三种主要实现方式,包括继承Thread类、实现Runnable接口和实现Callable接口,并分析它们之间的异同及其应用场景。 ... [详细]
  • 外观模式:为子系统中的一系列接口提供一个统一的访问入口,通过定义一个高层次的接口,使子系统的使用变得更加简便和高效。该模式特别适用于那些需要简化复杂子系统交互的场景,能够显著提升代码的可复用性和可维护性。对于具备一定面向对象编程基础的开发者来说,掌握外观模式将有助于更好地组织和管理复杂的软件架构。 ... [详细]
  • 在Android平台中,播放音频的采样率通常固定为44.1kHz,而录音的采样率则固定为8kHz。为了确保音频设备的正常工作,底层驱动必须预先设定这些固定的采样率。当上层应用提供的采样率与这些预设值不匹配时,需要通过重采样(resample)技术来调整采样率,以保证音频数据的正确处理和传输。本文将详细探讨FFMpeg在音频处理中的基础理论及重采样技术的应用。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 本文详细介绍了批处理技术的基本概念及其在实际应用中的重要性。首先,对简单的批处理内部命令进行了概述,重点讲解了Echo命令的功能,包括如何打开或关闭回显功能以及显示消息。如果没有指定任何参数,Echo命令会显示当前的回显设置。此外,文章还探讨了批处理技术在自动化任务执行、系统管理等领域的广泛应用,为读者提供了丰富的实践案例和技术指导。 ... [详细]
  • 深入解析C#中app.config文件的配置与修改方法
    在C#开发过程中,经常需要对系统的配置文件进行读写操作,如系统初始化参数的修改或运行时参数的更新。本文将详细介绍如何在C#中正确配置和修改app.config文件,包括其结构、常见用法以及最佳实践。此外,还将探讨exe.config文件的生成机制及其在不同环境下的应用,帮助开发者更好地管理和维护应用程序的配置信息。 ... [详细]
author-avatar
老娘要做泼妇i
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有