操作帮助搜索栏【Ctrl+Shift+A】:菜单->Help->Find Actions
0x01 高效定位代码
1.1 无处不在的跳转
- 项目间跳转
【Ctrl + Alt + ]】:Window—Next Project Window
【Ctrl + Alt + [】:Window—Previous Project Window - 文件之间跳转
【Ctrl + E】:Help—Find Action 或 Ctrl+Shift+A ,输入 内容 Recent (Changed)Files - 浏览/修改位置跳转
- 跳转到上次编辑的地方
【Ctrl+Shift+Backspace】:Navigate—Last Edit Location
【】:Navigate—Next Edit Location - 跳到上回(下次)浏览的地方,光标停的地方
【Ctrl+Alt+向左箭头】:Navigate—Back
【Ctrl+Alt+向右箭头】:Navigate—Forward
- 跳转到上次编辑的地方
- 书签跳转(快速学习源码时需要这个功能)
- 普通标记
【F11】:Toggle Bookmarks - 带有标记的书签
【Ctrl + F11】:Toggle Bookmarks with Mnemonic - 展示已有书签
【Shift + F11】:Show Bookmarks
- 普通标记
- 收藏位置和文件
- 打开收藏窗口
【Alt + 2】 - 添加收藏
【Alt+Shift+F】:Add to Favorites 收藏类光标放置在类上,收藏方法光标放置在方法上
- 打开收藏窗口
- 字符跳转插件emacs(不需要)
1.2 精准搜索
- 类
【Ctrl + N】:Navigate—Class 勾选 Include non-project classes 可搜索依赖 jar包的类文件 - 文件
【Ctrl + Shirt + N】:Navigate—File 勾选 Include non-project classes 可搜索依赖 jar包的文件 - 符号(两层含义:方法、成员变量)
【】:Navigate—Symbol - 字符串
【Ctrl + Shirft + F】:Edit—Find—Find In Path
0x02 代码小助手
2.1 列操作
选中所有相同字符(多光标操作)
【Ctrl + Shirft + Alt + J】:Select All Occurrences2.2 live template
【】:File—Setting—Editor—Live Templates
功能:定义模板,使用特定“字符”快速敲击出某段代码
比如 main ,敲出public static void main(String[] args)
自定义常用代码模板
- 创建分组:点击+按钮下的Template Group,Create New Group,取组名为“方法”
- 创建模板:在“方法”分组下,点击+按钮下的Live Templates创建模板。以main函数为例,下图中Abbreviation为模板名称,Description为模板注释,Template text中的内容为模板,其中$END$表示最后光标停留位置,最后要点击define,选择Java表示这个模板定义为Java语言的模板
2.3 postfix
代码预加载,和live tenplates类似但不可自定义,是IDEA默认做好的一套代码简写助手。打开postfix窗口,有很多被隐藏起来的预加载代码可以通过点[.]的方式进行预加载,又或者对一些太长、频繁使用的代码进行缩写处理。
100.fori:普通for循环,
list.forof:高级for循环
name.field:生成属性值
new Date().sout:输出new Date()
user.return:返回语句自动生成
user.nn:判空语句自动生成
2.4 alter enter
Show Intention Action
- 自动创建方法
- list replace :Replace with foreach
- 字符串format或者build
Replace “+” with String.fromat()
Replace ‘+” with StringBuilder.append() - 实现接口
- 纠正单词拼写(英文单词错误提示,单词下有波浪线):Type Change to
- 导包
0x03 编写高质量代码
3.1 重构
- 重构变量
【Shift+F6】:Refactor—Rename - 重构方法
【Ctrl+F6】:Refactor—Change Signature
在方法定义上或者方法调用的地方按下Ctrl+F6;或在调用的地方,直接添加一个参数后,光标置于参数上,按下按下alter+enter,选择Add ‘String’ as 2nd parameter to method ‘xxx’3.2 抽取 - 抽取变量
【 Ctrl +Alt +V】:Refactor—Extract—Variable
将光标定义到一个字符串上,按下ctrl+alt+V,选 Replace this occurrence only 或 Replace at 6 occurrences - 抽取静态变量
【Ctrl + Alt + C】:Refactor—Extract—Contant - 抽取成员变量
【Ctrl + Alt + F】:Refactor—Extract—Field - 抽取方法参数
【Ctrl + Alt + P】:Refactor—Extract—Parameter 抽取函数
【Ctrl + Alt + M】:Refactor—Extract—Method Replace all occurrences(地方)0x04 寻找修改轨迹
4.1 Git 集成
在左侧空白处(打断点处)右击选择Annotate,查看当前代码的Commit、Author、Date
- 移动到代码修改处
下一个修改地方:Navigate—Next Change
上一个修改地方:Navigate—Previous Change 撤销(回滚代码到你上一次提交的状态)
【Ctrl + Alt + Z】4.2 local history(Idea提供的本地版本控制工具)
Show History:右键或 【Ctrl + Alt + A】 — Local History — Show History,查看变更记录
Put Label :搜索出Local History,选择第二个Put Label;为本次更改做标记,再次show history可以看到左侧的标签
0x05 关联一切
5.1 Spring 的关联
Project Structure — Facets
功能:帮助管理Spring容器,还提供了很多其他的管理,比如EJB。使用:
使用: 1.点击+号,选择Spring,选择模块
2.在Spring中,点击+号,起一个名字,选择spring配置文件。(SpringBoot中,选择类文件)
3.项目的各个文件中会出现spring的logo,其提供了很多功能。比如查看该Bean是在哪提供的。
5.2 数据库的关联
数据库视图:IDEA右侧边栏的Database->+按钮->Data Source->选择是那种数据库->输入主机、数据库、用户名、密码、URL。
功能:
- 书写Mapper时,IDEA就会提示数据库的相关信息(表名、列名)
- 可以在视图中重构表名、列名,Shift+F6
0x06 调试
6.1 断点调试
- 添加断点
【Ctrl + F8】或在代码左侧边栏空白处点击即可为该行添加断点 - 单步运行
【Shift + F9】:以Debug方式运行程序
【F8】:step over - resume
【F9】:会跳转到下一个断点,如果没有断点了,直接运行至程序结束 - 查看所有断点
【Ctrl+Shift+F8】 - 禁止所有断点
【】:Mute Breakpoint 按钮,然后按F9,就可以跳过余下的所有断点了 - 条件断点
【Shift + Ctrl + F8】:在需要用条件断点的断点处使用 - 表达式求值
【Alt + F8】:可以对程序中的变量做一些符合Java语义的操作,如list.size()等 - 运行到指定行
【Alt+F9】:Run to Cursor,从断点运行的位置直接让程序运行到光标所在的行 - setValue
【F2】:在debug窗口,选中要设值的变量,按【F2】,可以在调试时改变变量的值
6.2 run anywhere if you can
- 运行当前上下文(与光标所在范围关联,最小范围为准)
【Ctrl+Shift+F9】:debug configuration - 在当前可运行列表中选择一个运行
【Shift+Alt+F9】 - 编辑当前运行
【 Alt + Ctrl +J】:Edit Configurations,比如可以给main函数的参数args设置默认值
0x07 其他
7.1 文件操作
- 【Ctrl + Alt + Insert】:在当前目录下创建类等文件
- 【F5】:复制当前文件至指定目录(默认为当前目录)
-
7.2 文本操作
【Ctrl + C】:复制当前文件名
- 【Ctrl + Shift +C】:复制当前文件完整路径
-
7.3 结构图
文件大纲
【Ctrl + F12】或 【Alt + 7】:m-方法,f-成员变量- maven依赖大纲
在 pom.xml 中键入快捷键【Ctrl [+ Shift] + Alt + U】或 右键—>Diagrams—>show Dependencies - 类图大纲
在类文件中【Ctrl [+ Shift] + Alt + U】或 右键—>Diagrams—>show Dependencies - 类继承关系
【Ctrl+H】 - 方法调用关系(源码分析时很管用)
【Ctrl+Alt+H】:查看当前函数调用了哪些其他函数,或当前函数被哪些函数调用
Call Hierarchy:显示方法的调用层次
Caller Methods Hierarchy:谁调用这个方法
Callee Methods Hierarchy:这个方法调用谁了
0x08 其他常用快捷键
F2/Shirft F2 | Next/Previous highlight error | 自动将光标定位到报错位置 |
---|---|---|