Article Directory
- Page Introduction
- Nirvana
- Efficient Location Code
- Code small aides
- Write high-quality code
- Looking for modifying the trajectory
- git integration
- Local History
- Everything related
- Start debugging your application to
- Breakpoint debugging
- Add a breakpoint
- Single-step operation (start running)
- Resume
- View all breakpoints
- Ban all breakpoints
- Conditional breakpoint
- Expression evaluation
- Run to the specified line
- SetValue
- run anywhere if you can
- Other operations
Page Introduction
Introduction
window | effect |
---|---|
file | Creation of the project, as well as the software settings, import and export, and other configuration path; |
edit | Text inside information operations |
view | Is a view, you can see the window in perspective |
Navigate | Jump in project engineering, quickly find a way |
code | To your source file operations |
analyze | You have to analyze the source code to see dependencies of classes and class |
Refactor | Shortcuts: static class such as extraction, the extraction function of extracting abstract methods |
Build | In order to build the project |
run | run |
Tools | Provides tools |
CVS | It refers to the version control |
hot key
Summary:
alt numbers to both sides of the window
esc to return to writing code window
Mac following shortcut numbers corresponding Cmd
Features | hot key |
---|---|
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 |
Specific shortcut keys, you can View - find> Tool Windows inside
Nirvana
effect | English | hot key | Remark |
---|---|---|---|
Find operation | Menu -> Help -> Find Action | Ctrl Shift A | All shortcuts can be found through it; all settings are also jumping to it from here |
Basically all occurrences of the IDEA English can use this to try (or you can not find what is English, then English good point directly obscenity, maybe there is an unexpected effect).
If you know the shortcuts but do not know what is the corresponding English words
Efficient Location Code
Everywhere jump
effect | English | hot key |
---|---|---|
Find operation | Menu -> Help -> Find Action | Ctrl Shift A |
Jump window | window -> next project window | windows opt cmd ` |
Find a recently viewed file | Recent Files | Cmd E |
Find recently modified files | Recent Edited Files | Cmd Shift E |
Go to the place of last modification | Menu -> Navigate-> Last Edit Location | Cmd Shift Delete |
Use Ctrl (digital) Jump (when reading the source code) | Bookmarks (bookmark) | Ctrl Shift Digital (tagging) Click again to cancel, Ctrl numbers (jump to the n-th tag) |
Favorites such as classes or methods | Lower right corner of Favorites (Cmd 2) View name Add to Favorites | Opt Shift F |
Last visit places | Navigate->Back(Forward) | Cmd Opt ←(→) |
Jump to the editing area file area | MAC:Cmd 1 /window:Alt 1 | |
Return to the editing area | 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
Features | English | hot key |
---|---|---|
See FIG maven class dependent | Right maven -> Maven -> Show Dependencies | Opt Sfhit Cmd U |
If you want to search, then, Cmd F, you can quickly jump past
Double click on above a node can quickly jump to the corresponding place xml file
Exclude can even right click operation and the like, will be dropped exclude xml file corresponding.
View class integrated structure, method invocation level
Class integrated structure
Features | English | hot key |
---|---|---|
View class integrated structure, method invocation level | Hierarchy | Ctrl H |
Method call hierarchy
Features | English | hot key |
---|---|---|
Method call hierarchy | Call Hierarchy | Opt Ctrl H |