文章目录
- 页面介绍
- 介绍
- 快捷键
- 必杀技
- 高效定位代码
- 无处不在的跳转
- 精准搜索
- 代码小助手们
- 列操作
- Live Template
- 简介
- 其他的小例子
- psfi
- 简单注释加一起代码的操作
- postfix
- 简介
- 比较常用的postfix
- for
- sout
- field
- return
- nn
- alter enter
- 简介
- 功能
- 自动创建函数
- list replace
- 字符串format或者build
- 实现接口
- 单词拼写
- 导包
- 编写高质量代码
- 重构
- 重构变量
- 重构方法
- 抽取
- 抽取变量
- 抽取静态变量
- 抽取成员变量
- 抽取方法参数
- 抽取函数
- 寻找修改轨迹
- git的集成
- 移动所有改动之处(找到)
- 撤销,包括单个和项目改动之处
- 撤销某个操作
- 撤销整个文件
- 撤销整个文件夹或者包
- Local History
- 关联一切
- Spring的关联
- 数据库的关联
- 开始调试你的程序把
- 断点调试
- 添加断点
- 单步运行(开始运行)
- Resume
- 查看所有断点
- 禁止所有断点
- 条件断点
- 表达式求值
- 运行到指定行
- SetValue
- run anywhere if you can
- 运行上下文
- 在当前可运行列表中选择一个运行
- 编辑当前运行![image-20200113103202428](https://img-blog.csdnimg.cn/20200116184045407.png)
- 其他操作
- 文件操作
- 在当前文件夹下面新建一个文件
- 复制当前文件
- 移动当前文件
- 文本操作
- 结构图
- 查看当前类Field Method大纲
- 查看maven、类图、依赖
- 类图(对于查看类的源码非常有用)
- Maven
- 查看类集成结构,方法调用层次
- 类集成结构
- 方法调用层次
页面介绍
介绍
窗口 | 作用 |
---|---|
file | 项目的创建,以及该软件的设置,导入导出,配置路径等; |
edit | 文本内心信息操作 |
view | 是视图,是你视野中能够看到窗口 |
Navigate | 在项目工程中跳转,快速找到方法 |
code | 对你的源码文件进行操作 |
analyze | 对你得源码进行分析,看类与类的依赖关系 |
Refactor | 快捷操作:比如抽取静态类,抽取函数,抽取抽象方法 |
Build | 是为了构建工程 |
run | 运行 |
Tools | 提供一些工具 |
CVS | 是指的版本控制 |
快捷键
总结:
alt 数字到 两边的窗口
esc 返回到编写代码窗口
如下快捷键mac中对应Cmd 数字
功能 | 快捷键 |
---|---|
1.Project | Alt 1 |
7.Structure | Alt 7 |
2.Favorites | Alt 2 |
4.Run | Alt 4 |
5.Debug | Alt 5 |
6.TODO | Alt 6 |
Terminal | Opt F12 |
具体快捷键,可以在 View -> Tool Windows里面找到
必杀技
作用 | 英文 | 快捷键 | 备注 |
---|---|---|---|
查找操作 | 菜单 -> Help -> Find Action | Ctrl Shift A | 所有的快捷键都可以通过它找到;所有的设置也能从这里直接跳转过去 |
基本上IDEA上所有出现的英文都可以用这个试一下(或者你也找不到英文是啥,英文好点的话可以直接意淫,说不定有意想不到的效果)。
如果知道快捷键但是不知道对应的英文是什么的话
高效定位代码
无处不在的跳转
作用 | 英文 | 快捷键 |
---|---|---|
查找操作 | 菜单 -> Help -> Find Action | Ctrl Shift A |
跳转窗口 | window -> next project window | windows opt cmd ` |
查找最近浏览文件 | Recent Files | Cmd E |
查找最近修改的文件 | Recent Edited Files | Cmd Shift E |
跳转到上次修改的地方 | 菜单->Navigate->Last Edit Location | Cmd Shift Delete |
利用Ctrl (数字)跳转(阅读源码的时候) | Bookmarks(书签) | Ctrl Shift 数字(打标签)再次点击取消、Ctrl 数字(跳转到第n个标签) |
收藏类或方法等 | 右下角Favorites(Cmd 2)查看,名字 Add to Favorites | Opt Shift F |
上次浏览的地方 | Navigate->Back(Forward) | Cmd Opt ←(→) |
编辑区跳转到文件区 | MAC:Cmd 1 /window:Alt 1 | |
返回到编辑区 | ESC |
字符串切换插件 emacsIDEAs (能够在当前文件相同的字母开头的单词间跳动)(感觉一般不会去用)
Cmd Shift A->输入plugins->install
修改插件快捷键
利用vim进行多编辑区跳转(忽略,基本不用)
精准搜索
功能 | 英文 | 快捷键 |
---|---|---|
搜索类 | Navigat -> Class | Cmd O |
搜索文件 | Navigat -> File | Cmd Shift O |
搜索符号(函数、属性) | Navigat -> Symbol | Opt Cmd O |
搜索字符串 | Edit -> Find -> Find in Path | Cmd Cmd F |
代码小助手们
列操作
功能 | 英文 | 快捷键 |
---|---|---|
mac上选中单词 | Move caret to next | Opt Shift → |
大小写切换 | Edit -> Toggle Case | Cmd Shift U |
移到行首 | Move caret to line Start | |
移到行尾 | Move caret to line End | |
选中每一行相同的 | Edit -> Find -> Select All Occurrence | Ctrl Cmd G |
Mac中对应的按键
名称 | 符号 | 按键 |
---|---|---|
Home | fn ←,不过我记得是Cmd ← | |
End | fn →,不过我记得是Cmd → |
Mac快捷键:
http://www.pc6.com/edu/81140.html
https://support.apple.com/zh-cn/guide/mac-help/cpmh0011/mac
例子:
如何将左边的字符串生成右边的枚举类?
首先通过批量操作的快捷键,然后操作第一行,移动到第二个单词例如:Continue,然后进行大小写转换,剪切,移动到行首,复制粘贴,然后左括号,然后移动到下个单词,然后到行尾,然后加上右括号,加。
然后格式化下代码就可以了。
Live Template
简介
什么是Template?
比如写java代码的Public static void main(String [] args){}
,使用Template只需要敲一个回车即可,并且光标会停留在需要的地方。
一些批量的操作就可以交给Template来做。
这个东东除了psvm还有什么快捷的方法吗?
在哪里?
新建分组
只需要写一个main,按tab键或者回车自动就生成了(具体是tab还其他可以在上图的右下角Expand with进行选择),如下图
其他的小例子
像public static final int DEFAULT_AGE = 21;
,例如这种是非常耗时间的重复代码,就可以用Template,能够大幅度提升编码速度。
包括一般的public String
这种也是重复性的代码,都可以用Template
psfi
var1和var2代表输入完了之后光标停留在var1,然后输入var1之后回车光标停留到var2,再按回车就到了行尾了。
不要忘了选中define
简单注释加一起代码的操作
一般字段上面的简单注释也是可以用Template来搞的
多么流畅的操作一气呵成
postfix
简介
如上的这个for循环,可以通过100.fori
直接打出来
这看起来很像template,但是这里叫做postfix,意思就是输入输入一个数字之后输入一个.会有很多的提示,比如100.for
这里直接通过Cmd Shift A直接跳转过去,叫做postfix completion
刚才的演示就是java环境中的fori,如下图。
看起来非常想Template,但是还是不一样的,就是它是不可编辑的不能新加功能。
比较常用的postfix
for
sout
field
比如有如下的构造函数
就会自动生成如下
return
加入一个有返回值的函数,可以通过下面的语法完成return
nn
如上
if (name != null) {}
这段代码可以通过name.nn快速生成。
alter enter
简介
英文:show intentions for node
当你不知道如果完成一段代码的时候,只需要Opt Enter
就会智能提示
功能
自动创建函数
如下图,在main函数中调用没有的函数,通过Opt Enter能够自动创建函数,如下面的getName
list replace
如图一个遍历list的方式,其实可以将光标到for上面,然后Opt Enter,replace为其他的遍历的格式
字符串format或者build
加入有下面这段代码,String是如图拼接的
我们就可以通过Opt Enter来转化为
同样可以选择其他的选项对String进行优化,比如转化成StringBuilder
实现接口
假如有如下的接口
光标到接口名字上,Opt Enter,选择implement interface
就会自动帮我们创建实现了这个接口的类,也自动实现了接口的方法
单词拼写
单词拼写就是在写代码的时候可能有的单词拼写的不对,通过Opt Enter会帮我们提示正确的单词
如上图,我的name
写错了,下面是会出现波浪线的,通过Opt Enter然后点击change to会自动提示可能正确的单词。
导包
编写高质量代码
重构
重构变量
功能 | 英文 | 快捷键 |
---|---|---|
重构变量 | Refactor -> Rename | Shift F6 |
如上的这段代码,什么abc,什么bcd,都不知道什么意思,这个时候就需要给他们批量换个名字,有没有什么快捷的方式呢?
拿这个main演示下
除了能够选择之外,还能够直接键入自己喜欢的名字。
重构方法
功能 | 英文 | 快捷键 |
---|---|---|
重构方法 | Refactor -> Change Signature | Cmd F6 |
上面的getSomeThing有一个参数,这里希望给他两个参数,怎么办?鼠标放到方法名上,Cmd F6
当然了还有一种更加快捷的方式,直接在调用的地方修改参数,然后通过Opt Enter,如下
抽取
抽取变量
功能 | 英文 | 快捷键 |
---|---|---|
抽取变量 | Refactor -> Extract -> Variable | Opt Cmd V |
如图这里的leesin重复了,可以通过快捷键把他抽取出来
抽取静态变量
功能 | 英文 | 快捷键 |
---|---|---|
抽取静态变量 | Opt Cmd C |
抽取成员变量
功能 | 英文 | 快捷键 |
---|---|---|
抽取成员变量 | Opt Cmd F |
抽取方法参数
功能 | 英文 | 快捷键 |
---|---|---|
抽取方法参数 | Opt Cmd P |
抽取成员变量为方法的参数
抽取函数
将函数中部分代码抽取出来,变成一个新的函数
功能 | 英文 | 快捷键 |
---|---|---|
抽取函数 | Opt Cmd M |
会自动生成方法,且可以选择是否自动匹配相同的代码段应用如上的规则,可以看到我这里第二个也自动变成可如下抽取的方法。
寻找修改轨迹
git的集成
如果在写代码的过程中不知道某一行的意思,但是不知道是谁提交的,那该怎么办呢?
右键选择Annotation
就可以看到提交记录
鼠标放在上面就会出现对应的信息
再次右键可以选择关闭它
移动所有改动之处(找到)
功能 | 英文 | 快捷键 |
---|---|---|
移动所有改动之处(找到) | Previous Change | Ctrl Opt Shift ↑ |
在被版本控制里面如果修改了部分代码你需要看下之前修改了哪些地方
比如有这样一个需求,你这次修改的地方都需要改一个字段怎么办?
通过上面的快捷键,就能够找到了,比如下面我删除了某些东西。
然后就可以做相应的操作了。
撤销,包括单个和项目改动之处
功能 | 英文 | 快捷键 |
---|---|---|
撤销,包括单个和项目改动之处 | Cmd Opt Z |
撤销某个操作
那像上面(在版本控制中)的我做了一个增加和删除的操作,怎么撤销呢?
光标移动那改动的那一行(左边会有标志),Cmd Opt Z
找到这个快捷键
撤销整个文件
如何放弃修改整个文件?
在没有修改的地方Cmd Opt Z
撤销整个文件夹或者包
如果希望撤销整个文件夹或者包呢?
那就在左边的窗口,点击文件夹或者包,按住Cmd Opt Z
Local History
当项目没有被版本控制的时候,在本地也会有一个版本控制
Cmd Shift A搜获 local history
会出现一个窗口
Show History
Put Label
其实和git commit类似,当你没有版本控制的时候,希望把当前的更改提交一个commit,在idea中是一个label。
比如在idea中更改了一些东西,然后按put label,输入自己的名字,然后在local history中进行查看,就能看到自己的label中修改的东西,好像真的和git commit蛮像的
关联一切
Spring的关联
如图这个Service是被实现的呢?具体是哪个?
Cmd ;
选中你的配置文件
然后发现代码左边有两个小东西,点击能够直接跳转到对应的类中
包括上面的图标,点击能够知道当前的类是在哪里被扫描到的
然后就到了如下的图:
发现这里也有这个图标,同样点击能够把项目中base-package下的bean全部扫描出来。
数据库的关联
首先通过右边的侧边栏database,创建对应的数据库
之后在写代码的时候,就会自动提示字段名
加入想要对表名或者字段名进行重构,那么就只需要在右边点击数据库名后者字段名Shift F6
改完之后,代码中的也会自动进行变化
如果是修改字段的话,还可以让自己自定义修改哪些地方,比如下面的实体类中的字段和数据库是没有关系的,可以选择排除
开始调试你的程序把
断点调试
添加断点
功能 | 英文 | 快捷键 |
---|---|---|
添加断点 | Toggle Line Breakpoint | Cmd F8 |
单步运行(开始运行)
功能 | 英文 | 快捷键 |
---|---|---|
单步运行(开始运行) | run -> debug | Ctrl D |
单步运行之后,每次按F8,程序就会一行一行运行
Resume
功能 | 英文 | 快捷键 |
---|---|---|
跳到下一个断点 | run -> Resume Program | F9(我mac上显示Opt Cmd R,但是不管用) |
查看所有断点
功能 | 英文 | 快捷键 |
---|---|---|
查看所有断点 | Shift Cmd F8 |
禁止所有断点
加入运行到某个地方发现了bug,所以后面的断点都想取消掉,怎么办?
英文:Mute Breakpoints
条件断点
调试断点的时候,必须满足某一个条件,断点才会生效
功能 | 英文 | 快捷键 |
---|---|---|
条件断点 | Cmd Shift F8 |
首先要选中当前行,然后按快捷键Cmd Shift F8
,里面填入Java的判断表达式即可,可以看到只有i=8的时候被"卡"主了。
表达式求值
功能 | 英文 | 快捷键 |
---|---|---|
表达式求值 | run -> Evaluate Expression | Opt F8 |
从上面的图中能够看到,右边会自动展示出值,但是如果没有的话怎么办呢?
选中值,然后Opt F8
如果是List或者其他的元素,还可以求值,比如get(n)、size()等方法
运行到指定行
功能 | 英文 | 快捷键 |
---|---|---|
运行到指定行 | Run to Cursor | Opt F9 |
光标停在指定的地方,然后按Opt F9
就会直接跳转到指定行,从上个断点到这里的中间过程不会展示出来
SetValue
功能 | 英文 | 快捷键 |
---|---|---|
改变值 | F2 |
如上图从下面的debug窗口动态的改变上面的debug过程中代码的值
run anywhere if you can
运行上下文
功能 | 英文 | 快捷键 |
---|---|---|
运行单元片段(Debug) | Debug Context Configuration | Ctrl Shift F9(我没有查到我查到的是Ctrl Shift D) |
运行单元片段(run) | Ctrl Shift R |
我希望运行这个main函数,就直接把光标放到这个main函数里面,然后按Ctrl Shift D
如图,有多个单元测试,也可以通过Ctrl Shift D执行其中的某一个
其实还没有结束,Debug Context Configuration中的context什么意思呢?其实就是一个上下文,就是从当前鼠标光标网上找到最小的上下文
如果把光标停留在两个函数的外面,然后按快捷键Ctrl Shift D,上下文就是整个类,就会把两个方法都进行执行了。
在当前可运行列表中选择一个运行
有时候希望更快的去运行,刚刚已经运行过的
功能 | 英文 | 快捷键 |
---|---|---|
运行可运行列表中的一个 | run -> debug | Ctrl Opt F9 |
编辑当前运行
其他操作
文件操作
在当前文件夹下面新建一个文件
功能 | 英文 | 快捷键 |
---|---|---|
在当前文件夹下面新建一个文件 | other -> new… | Ctrl Opt N |
鼠标在当前类中,就会直接在当前的文件夹下面新建,而不用点击左边的侧边栏,选中文件加,再新建
复制当前文件
功能 | 英文 | 快捷键 |
---|---|---|
复制当前文件 | F5(windows和mac一行) |
移动当前文件
功能 | 英文 | 快捷键 |
---|---|---|
移动当前文件 | F6 |
鼠标在当前类就可以直接移动当前的类,平常需要先选中左边的窗口中的文件加,然后剪切->复制
甚至如果中间没有文件夹的话,会自动新建
文本操作
功能 | 英文 | 快捷键 |
---|---|---|
复制当前文件名(选中文件) | Cmd C | |
复制当前文件全路径名(选中文件) | Shift Cmd C | |
选择性粘贴 | Shift Cmd V |
假如当前的需要复制多个文件名,一个一个复制肯定很累对吧,我们可以一次性期多次复制好先,然后通过Shift Cmd V
会出现如下的页面,会列出最近复制的内容,可以选择性的粘贴
通过按1、2、3...
等可以直接把对应的复制出来。
结构图
查看当前类Field Method大纲
功能 | 英文 | 快捷键 |
---|---|---|
查看当前类Field Method大纲 | Navigae -> File Structure | Cmd F12 |
查看maven、类图、依赖
类图(对于查看类的源码非常有用)
功能 | 英文 | 快捷键 |
---|---|---|
查看类图、依赖 | maven中右键 -> Maven -> Show Dependencies | Opt Sfhit Cmd U |
Maven
功能 | 英文 | 快捷键 |
---|---|---|
查看maven类图、依赖 | maven中右键 -> Maven -> Show Dependencies | Opt Sfhit Cmd U |
如果要搜索的话,Cmd F,就能迅速的跳转过去
双击上面的某个节点,能够迅速的跳转到xml文件中对应的地方
甚至可以右击进行Exclude等操作,在对应的xml文件中也会被exclude掉。
查看类集成结构,方法调用层次
类集成结构
功能 | 英文 | 快捷键 |
---|---|---|
查看类集成结构,方法调用层次 | Hierarchy | Ctrl H |
方法调用层次
功能 | 英文 | 快捷键 |
---|---|---|
方法调用层次 | Call Hierarchy | Opt Ctrl H |