操作帮助搜索栏【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 Occurrences

    2.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语言的模板

image.png

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是在哪提供的。

image.png

5.2 数据库的关联

数据库视图:IDEA右侧边栏的Database->+按钮->Data Source->选择是那种数据库->输入主机、数据库、用户名、密码、URL。
功能

  • 书写Mapper时,IDEA就会提示数据库的相关信息(表名、列名)
  • 可以在视图中重构表名、列名,Shift+F6

image.png

0x06 调试

6.1 断点调试

  • 添加断点
    【Ctrl + F8】或在代码左侧边栏空白处点击即可为该行添加断点
  • 单步运行
    【Shift + F9】:以Debug方式运行程序
    【F8】:step over
  • resume
    【F9】:会跳转到下一个断点,如果没有断点了,直接运行至程序结束
  • 查看所有断点
    【Ctrl+Shift+F8】
    image.png
  • 禁止所有断点
    【】:Mute Breakpoint 按钮,然后按F9,就可以跳过余下的所有断点了
  • 条件断点
    【Shift + Ctrl + F8】:在需要用条件断点的断点处使用
  • 表达式求值
    【Alt + F8】:可以对程序中的变量做一些符合Java语义的操作,如list.size()等
  • 运行到指定行
    【Alt+F9】:Run to Cursor,从断点运行的位置直接让程序运行到光标所在的行
  • setValue
    【F2】:在debug窗口,选中要设值的变量,按【F2】,可以在调试时改变变量的值

image.png

6.2 run anywhere if you can

  • 运行当前上下文(与光标所在范围关联,最小范围为准)
    【Ctrl+Shift+F9】:debug configuration
  • 在当前可运行列表中选择一个运行
    【Shift+Alt+F9】
  • 编辑当前运行
    【 Alt + Ctrl +J】:Edit Configurations,比如可以给main函数的参数args设置默认值
    image.png

0x07 其他

7.1 文件操作

  • 【Ctrl + Alt + Insert】:在当前目录下创建类等文件
  • 【F5】:复制当前文件至指定目录(默认为当前目录)
  • 【F6】:移动当前文件至指定目录

    7.2 文本操作

  • 【Ctrl + C】:复制当前文件名

  • 【Ctrl + Shift +C】:复制当前文件完整路径
  • 【Ctrl + Shift +V】:打开剪贴板

    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:这个方法调用谁了
IntelliJ IDEA使用技巧 - 图7image.png

image.pngimage.png

0x08 其他常用快捷键

F2/Shirft F2 Next/Previous highlight error 自动将光标定位到报错位置

附【可爱泡泡】同学粉色版
IntelliJ IDEA使用技巧 - 图11