说明
对慕课网 IntelliJ IDEA神器使用技巧 的课程总结
1. 隐藏 IDEA 的项目配置文件
2. 常用默认快捷键
快捷键 | 功能 |
---|---|
CTR+N | 搜索类 |
CTR+SHIFT+N | 搜索文件 |
CTR+ALT+空格 | 代码提示 |
ALT+F7 | 查询在某处使用 |
CTR+Q | 查看代码提示及内容 |
CTR+Z | 撤销 |
CTR+SHIFT+Z | 恢复撤销 |
CTR+F12 | 查看文件列表 |
SHIFT+F6 | 重命名 |
Ctrl+Shift+R | 替换 |
ALT+INSERT | 生成 getter 和 setter 的方法 |
CTR+ALT+T | 选中某一个段代码进行 try catch |
CTR+SHIT+空格 | 新建类时 在 new 后面使用 |
CTR+ALT+B | 查看接口或者抽象类的子类 |
CTR+SHIT+/ | 注释(整体注释) |
CTR+/ | 行注释 |
添加 | 新增一行并切换到行首 |
CTR+D | 换行 并复制 |
CTR+Y | 删除当前行 |
移动代码 | Ctrl+Shift+↑/↓ 或者 Alt+Shift+↑/↓ |
CTR+ALT+L | 格式化代码 |
ALT+右箭头 | 移动到单词或符号的末尾 |
ALT+左箭头 | 移动到单词或符号的开始 |
CTR+ALT+左箭头 | 跳转到上次鼠标停留处 |
CTR+ALT+右箭头 | 恢复到鼠标停留处 |
3. 常用工具
3.1 rest client工具
3.2 SSH远程管理工具
浏览远程主机目录
4.高效开发
4.1 查找指令(Find Action)
IDEA 中 Help 下的 Find Action
可以帮助使用者定位到各个指令。Find Action
本身的快捷键是 Ctrl+Shift+A
4.2 界面定位
-
导航栏是通过
alt + 下划线
即可快速打开下拉列表比如
alt+v
即可打开导航栏上 view 的下拉列表 -
左侧和下侧通过
alt+数字
即可快速打开相关区域比如
alt+1
即可打开 project 区域,查看项目
4.3 各种跳转
4.3.1 项目之间的跳转
如果有打开了多个窗口,可以通过如下快捷键在多个项目间跳转。
4.3.2 文件之间的跳转
1)查找最近打开的文件
在项目中文件很多的情况下,有时会想找到最近浏览过的文件
ctrl+E
可以找到最近浏览过的文件
2)查找最近编辑过的文件
ctrl+shift+e
可以找到最近修改过的文件
3)跳转到上次修改的位置
ctrl+shift+backspace
:该跳转会精确到行
3)跳转到光标之前停留过的地方
Ctrl+Alt+向左箭头
4)跳转到光标之后停留过的地方
Ctrl+Alt+向右箭头
4.3.3 收藏并跳转
1)无序书签(F11)
在读源码时对某个好的代码块或迷惑的写法进行收藏,方便回看。
先使用 F11
进行标记
此时 alt+2
就可以看到被标记的书签记录
2)有序书签(ctrl+F11)
也可以给其指定编号 ctrl+F11
。一旦指定编号后,就可以在任意位置提供 ctrl+标号
直接跳转过来
3)收藏(alt+shift+f)
对代码中某个方法进行收藏,且还支持列表,可以把值得学习的代码放到一个列表中。
如果在某个类中收藏了多处方法,会分别显示
4.3.4 字符跳转插件 emacsIdea
在编辑一个文件时,有时需要将光标跳转到以某个字母开头的位置。
如以 s 开头,文件中有多个以 s 开头的位置,这时可以借助 emacsIDEAs
插件做到快捷跳转
安装完该插件后,设置其快捷键,Ctrl+Shift+A
,输入 keymaps
,找到 Manage keymaps
- 选择
Plug-ins
,在最下面找到emacsIDEAs
,找到AceJumpWord
AceJumpWord
默认的快捷键为Meta+F
,右键,Add keyboard Shortcut
,为其添加快捷键,比如Shift+J
如要跳转到以 p 开头的位置,先按住 Ctrl+J
,然后再输入 p,这时,emacsIDEAs
插件会为文件的所有以 p 开头的单词进行编号,如 asdf 等等。按下光标要跳转到位置对应的字母即可
4.3.5 编辑区和文件区来回跳转
跳转到文件区:alt + 1
跳回到编辑区:esc
4.4 精准搜索
1)类
-
Ctrl+N:搜索到指定的Class
-
Ctrl+N+N:搜索到所依赖的JAR包中的类
2)文件
- Ctrl+Shift+N:可搜索到指定的文件
- Ctrl+Shift+N+N:可搜索到所依赖的JAR包中的文件
3)关键字
- Ctrl+Alt+Shift+N:可以搜索关键字,包括变量名、函数名和类名等。
4)字符串
要搜索字符串,可以通过 Ctrl+Shift+F
来实现
有几个选项:
-
Match case:是否匹配大小写
-
Words:是否是一个单词
-
Regex:通过正则表达式搜索
-
File mask:可以指定在哪类文件下去搜索
-
In Project:在项目下搜索
-
Module:在模块下搜索
-
Directory:在目录下搜索
-
Scope:在指定区域内搜索,还可以自定义搜索区域
4.5 代码助手
列操作
比如要将左边的响应码转换成右边的枚举类,一般操作都会新建一个枚举类对象再一个个的复制粘贴。
-
首先
ctrl+shift+右箭头
选中第一个单词
-
选中后
ctrl+shift+u
将其转为大写 -
剪切,按
home
键移动到行首,粘贴
-
添加左括号,然后
ctrl+右箭头
跳到“100”
的末尾并添加右箭头。删除多余部分,补齐分号
这样就完成了第一行的操作。需要的是对所有行进行同样的批量操作。使用 ctrl+shift+alt+J
来完成批量操作。将第一步操作改为“在冒号处按住批量操作的快捷键”即可
1.光标选中相关操作
- Ctrl+Shift+右箭头:把光标移动到下一个单词并选中。
Find Action中搜索Move Caret to Next Word With Slection- Ctrl+右箭头:把光标移动到下一个单词。
Find Action中搜索Move Caret to Next Word- 大小写转换 :Ctrl+Shift+U
- Home:将光标移动到本行开始的位置
- End:将光标移动到本行最后的位置
- Ctrl+Alt+Shift+J:选中所有相同的字符串,多光标操作
- F2:自动将光标定位到报错的位置
- Ctrl+Alt+L:格式化代码
5. 模板
5.1 代码提示模板
案例1
案例2
案例3
案例4
使用时 var1 的内容输入完成后按 tab 键光标就直接到等号右边 var2 了
5.2 设置组件内容模板
比如说自定义HTML文件的模板
将 #[[$Title$]]
改为 自定义组件内容模板
,新建html文件后即可生效
5.3 注释模板
5.3.1 类注释模板
仅对设定之后创建的文件效
/**
* @Auther: xxx
* @Date: ${DATE}
* @Description: ${PACKAGE_NAME}
* @version: 1.0
*/
5.3.2 方法注释模板
和代码提示模板的方式一样
/**
* 功能描述: <br>
* 〈$END$〉
*
* @param: $param$
* @return:$return$
* @since: 1.0.0
* @Author:$user$
* @Date: $DATE$ $TIME$
*/
6. postfix
6.1 什么是 postfix
for 循环的一般写法,写玩完整的for循环语句
Integer[] arr = {1,2,3,4,5,6,7,8,9,10};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
postfix 简化编写
在 Settings
下的 Postfix Completion
可以查看有哪些后缀实现
看上去和 livetemplate
类似,但是它是不可编辑的,只有这些固定的模板
6.2 常用的postfix
-
for
-
fori:for循环
-
sout:打印输出。例子:new Date().sout
-
field:引入表达式字段
//当忘记声明arg变量时,使用field public class User { public Foo(int age) { age.field } } //使用后,会自动生成属性 public class User { private final int age; public User(int age) { this.age = age; } }
-
return
String m() { "result".r } //生效后 String m() { return "result"; }
-
nn:检查表达式是否为空
7. 智能提示 alt+enter
-
自动创建函数
public static void main(String[] args) { f1();//Alt+Enter就会自动创建出下面的函数 } private static void f1() { }
-
List Replace
for (int i = 0; i < list.size(); i++) { String item = list.get(i); } //选中for循环按住alt+enter出现Replace with foreach,会将代码替换成如下最简形式 for (String item : list) { }
-
字符串 format 或 build
//format后 System.out.printf("name:%s,age:%d%n", name, age); //build后 System.out.println( new StringBuilder().append("name:").append(name).append(",age:") .append(age).toString());
-
实现接口
选择好包后便会自动创建好实现类
-
单词拼写
idea 会自动检测单词是否拼错,在可能拼错的单词下面都会有波浪线
选择第一个时,它会给出一些建议
-
导包
8. 重构与抽取
8.1 重构
8.1.1 重命名(Shift+F6)
如下代码是输出全名称,显然变量 abc 这种不规范的命名使得代码的可读性大大降低
对参数 abc 使用 shift+f6
,修改整个类中的所有abc变量
8.1.2 重构函数(Ctrl+F6)
相对上图中的 sayHello 方法进行修改,参数再加上一个 lastName
-
Ctrl+F6:添加参数
alt+insert
新增参数,alt+delete
删除参数。编写完后refactor
-
先在调用的地方添加实参,然后直接 Alt+Enter
8.2 抽取
Refactor->Extract->Variable
-
抽取变量:Ctrl+Alt+V
//抽取前 System.out.println("sun"); System.out.println("sun"); System.out.println("sun"); //抽取后 String sun = "sun"; System.out.println(sun); System.out.println(sun); System.out.println(sun);
-
抽取成静态常量:Ctrl+Alt+C
public static final String SUN = "sun"; public static void main(String[] args) { System.out.println(SUN); System.out.println(SUN); System.out.println(SUN); }
-
抽取成员变量:Ctrl+Alt+F
private static String sun; public static void main(String[] args) { sun = "sun"; System.out.println(sun); System.out.println(sun); System.out.println(sun); }
-
抽取形参:Ctrl+Alt+P
//抽取前 private String lastName; public void sayHello(String firstName) { String say = lastName; } //抽取后 private String lastName; public void sayHello(String firstName, String lastName) { String say = lastName; }
-
抽取函数:Ctrl+Alt+M
9. 版本控制
9.1 本地版本
local history
-
show history:查看本地所有的更改。自定义的快捷键为
alt+shift+h
-
put label:做了更改后,为本次更改做个标记,可以在历史中看到左侧的标签。自定义的快捷键为
alt+shift+p
9.2 使用git
- annotate:注释。在显示行号的位置右击,选中 Annotate 即可查看当前行代码的 commit、author 和 date
- 定位修改处:Previous Change。快捷键
Ctrl+ALT+SHIFT+向上箭头
- 撤销:
Ctrl+alt+Z
- 在改动处使用此快捷键会撤销之前的代码
- 在未改动处使用此快捷键会撤销所有的修改代码,回退到最近的那个版本
- 选中文件夹后使用此快捷键会撤销整个文件夹和其下面的文件
10. 关联
10.1 关联Spring
- File->Project Structure->Facets->+按钮->Spring 把接口和实现类对应起来,bean 是在哪个文件扫描到的等
关联 Spring 的配置文件
10.2 关联数据库
关联数据库
智能提示
- 书写Mapper时,IDEA就会提示数据库的相关信息(表名、列名)
- 可以在视图中重构表名、列名,Shift+F6
11. 调试程序
-
Ctrl+F8:添加断点(Toggle Line Breakpoint)
-
Shift+F9:Debug方式启动程序
-
F8:单步运行(Step Over)
-
F9:继续(resume)。会跳转到下一个断点,如果后面没有断点了,则直接结束程序
-
Ctrl+Shift+F8:查看所有断点
-
Mute Breakpoint(禁止所有断点),一旦在debug模式中禁止了所有断点,再按F9时,将跳过余下的所有断点
-
条件断点:ctrl+shift+F8。条件必须是合法的 java 表达式
-
alt+F8:表达式求值。可以对程序中的变量做一些操作如
list.size
等.
-
Alt+F9:运行到光标所在行(Run to Cursor)。从断点运行的位置直接让程序运行到光标所在的行
-
setValue,在 debug 窗口,选中要设值得变量,通过 F2 可以在调试时动态地改变变量的值
比如,测试 list 等于 null 时方法的返回情况
通过 F2 将 list 的值设置为 null
12. 随处运行
12.1 运行当前上下文
如图,有一个 Demo 类,其 main 方法是可以运行的。它还有一个单测类,单测中的两个方法也是可以单独运行。
配置 debug context configuration
的快捷键为 alt+shift+d
后。当光标在 main 方法类或单测中的 foo 方法、bar 方法内时,通过 ctrl+shift+d
,即可运行。
这里的 context 是从光标所停留的地方向上去找能运行的最小的上下文。
比如上图中此时的光标在第 13 行,那么此时的所能运行的最小的上下文就是 bar 方法,此时通过 debug context configuration
运行的就是 bar 方法;如果光标停留在第 10 行,那最小的上下文就是 DemoTest 类,此时运行的是该类中的所有单测方法。
其便捷之处在于如果想运行某个 main 或单测方法,无需在指定出去运行,只有在上下文范围内通过 debug context configuration
即可。
12.2 在当前可运行列表中选择一个运行
通过 shift+alt+F9
显示出所有之前运行过的部分,从中选择一个运行即可。
12.3 编辑当前运行
想要设定 main 方法中的形参 agrs 的值
设定快捷键
13. 文件操作
13.1 新建文件(ctrl+alt+insert)
在某个文件内使用此快捷键时,创建的文件将会和该文件在同一个目录下
可以在项目结构的指定位置下创建文件。比如在pojo目录下通过该快捷键创建一个 User.java 文件
13.2 复制当前文件(F5)
对某个文件使用F5时,将会在该文件的同级目录下copy出一份相同的文件
13.3 移动当前文件(F6)
除了剪切复制外,移动当前的文件到指定的目录下还可以使用F6
14. 文本操作
-
复制文件名:选中文件名后按 Ctrl+C
-
复制文件完整路径:Ctrl+Shift+C
-
复制多个文件名:ctrl+shift+v
比如,对这三个文件都进行Ctrl+C的复制操作,
然后
Ctrl+Shift+V
打开 idea 自带的剪切板,它会记录之前复制的操作通过数字键即可选中需要的内容
15. 结构图
-
Ctrl+F12:查看当前 field、method 大纲(File Structure)
-
Ctrl+Alt+Shift+U:查看 maven 依赖大纲。或 pom.xml 右击->Maven->Show Dependency
-
Ctrl+Alt+Shift+U:查看类图大纲。或找到代码右键 Diagrams
-
Ctrl+H:查看类继承结构
-
Ctrl+Alt+H:查看当前函数调用了哪些其他函数或当前函数被哪些函数调用,可以帮助看其他项目源码的结构
-
当前函数被哪些函数调用
-
查看当前函数调用了哪些其他函数调用
-
bar1 被 foo 调用,foo 被 main 调用
16.快捷键表格文档
点击 IDEA 上方菜单栏的 Help,再点击 Keymap Reference,就可以打开 IDEA 自带的快捷键文档