IntelliJ IDEA 快捷键

获取快捷键参考和提示

如果你是一名刚刚上手 IntelliJ IDEA 的萌新,那么推荐你下载 Key Promoter X 这款插件,这个插件能在你执行某些操作的时候(如果该操作有对应的快捷键),那么会在 IntelliJ IDEA 的右下方弹出一个卡片,告诉你操作对应的快捷键是什么,效果如下所示: 当然,你也可以通过菜单栏 help -> keymap Reference 去获取 IltelliJ IDEA 的完成快捷键列表:

下面列上了 IntelliJ IDEA 的快捷键参考翻译版,如下所示:

  • ctrl + 空格 代码补齐(类、方法、变量等)
  • ctrl + shift + 空格 智能代码补齐
  • ctrl + shift + 回车 完整代码补齐(格式化代码,跳转到下一行,补齐代码比如括号'('花括号'}')
  • ctrl + p 查看方法参数,在调用方法参数中
  • ctrl + q 查看方法注释/文档
  • shift + f1 外部文件
  • ctrl + hover 查看简要信息(类,方法,参数。。。)
  • ctrl +f1 显示语法错误警告(使用鼠标悬浮过于鸡肋)
  • alt + insert 生成代码(构造函数,getter/setter,hashCode/equals/toString)
  • ctrl + o 重写方法
  • ctrl + i 实现方法
  • ctrl + alt + t 代码外部环绕(if...else,try-catch,for,synchronized,etc....)
  • ctrl + / 单行注释和取消注释
  • ctrl + shift + / 多行(块)注释和取消注释
  • ctrl + w 选中单词(变量,方法名,类...)
  • ctrl + shfit +w 取消选中或回退选中之前状态
  • alt + q:内容信息
  • alt + 回车:显示idea快速修复(导入类,补充括号....)
  • ctrl + alt + l : 格式化代码
  • ctrl + alt + o (快速导入)
  • ctrl + alt + i 自动缩进水平线(使用 ctrl + alt + l)代替
  • tab/shift + tab 缩进/回退当前行缩进
  • ctrl + x 剪切当前行
  • ctrl + c 复制当前行
  • ctrl + v 粘贴
  • ctrl + shift + v
  • ctrl + d 复制当前行或选中块到下一行
  • ctrl + y 删除行
  • ctrl + shift + j 将下一行内容加入到当前行结尾
  • ctrl + 回车 分隔当前行
  • shift + 回车 开始新的一行
  • ctrl + shift + u 选中内容切换大小写
  • ctrl + sfhit ]/[ 跳转到代码块开始或结束
  • ctrl + delete/backspace 删除单词或结束(使用ctrl+左右箭头+backspace或ctrl + w + backspace)
  • ctrl + +/- 展开或折叠代码块
  • ctrl + + 展开代码块
  • ctrl + - 折叠代码块
  • ctrl + f4 关闭当前活动状态窗口或选项卡
  • alt + f7/ctrl + f7 查找引用

    ctrl + shfit + f7 高亮查找引用

    ctrl + alt + f7 全局查找引用,列表展示

    ctrl + n 查找类(默认为当前项目,使用ctrl+n可切换查找源)

    ctrl + shift + n 查找文件(默认为当前项目,使用ctrl+shift+n可切换查找源)

    ctrl + alt + shift + n 查找引用(搜索关键字可以为,变量名,方法名)

    alt + 左右箭头 切换文件选项卡

    f12 回退到上一个窗口

    esc 关闭当前活动窗口(只要是窗口都可以通过esc关闭)

    ctrl + shift + esc 隐藏活动窗口或最后一个活动窗口( 和windows快捷键冲突 )

    ctrl + shift + f4 关闭当前运行窗口/消息窗口/查找窗口等

    ctrl + g 跳转到指定行

    ctrl + e 打开最近编辑文件列表

    ctrl + alt + 左右 导航回退

    ctrl + shift + backspace 导航到最后一次编辑所位置

    alt + f1 打开导航窗口列表

    ctrl + b/ctrl + 鼠标左键 转到定义(方法的定义,类的定义,变量的定义...)

    ctrl + alt + b 转到实现(抽象方法的实现)

    ctrl + shift + i 弹窗打开定义

    ctrl + shift + b 转到类型定义(与搜狗输入法冲突)

    ctrl + u 转到父类方法或者父类

    alt + 方向键上或下 跳转到上一个下一个方法

    ctrl + [/] 移动到代码块开始或结束

    ctrl + F12 弹窗打开文件结构

    shift + esc 关闭导航窗口

    ctrl + shift + h 方法层次结构

    ctrl + alt + h 方法调用层次

    f2 / shift + f2 跳转到上一个/下一个错误位置

    f4/ctrl + 回车 编辑源/源定义

    alt + home 显示导航栏

    f11 切换书签

    ctrl + f11 使用标记切换书签

    ctrl + 书签定义符号 跳转书签定义行

    ctrl + [0-9] 跳转到标签编号所在行

    shift + f11 弹窗打开包含标签的类

    搜索和替换

    连续按两次shift 搜索窗口

    ctrl + f 内容查找

    f3 / shift+f3 查找上一个或下一个

    ctrl + r 替换

    ctrl + shift + f 从项目中查找类似于(ctrl+alt+shift+n)更强大的搜索,全文检索

    ctrl + shift +r 替换整个项目引用

    ctrl + alt + j 模板外部环绕

    ctrl + j 插入实时模板

    public static void main(String[] args) {
        // live template
        // iter jdk1.5迭代风格
        for (String arg : args) {
        // inst 使用instanceof和检查对象类型
        if (args instanceof Object) {
            Object o = (Object) args;
        // itco 迭代java.util.collection 元素
        for (Iterator iterator = collection.iterator(); iterator.hasNext(); ) {
            Object next = iterator.next();
        // itit 迭代java.util.Iterator元素
        while (iterator.hasNext()) {
            Object next = iterator.next();
        // itli 迭代java.util.List元素
        for (int i = 0; i < list.size(); i++) {
            Object o = list.get(i);
        // psf public static final
        // thr throw new 
    

    f5 拷贝一个新文件

    f6 移动一个文件

    alt + delete 安全删除

    shift + f6 重命名(类名、文件名、变量名、方法名、参数名)

    ctrl + f6 更改签名(方法等)

    ctrl + alt + n 内联

    ctrl + alt + m 提取方法

    ctrl + alt + v 提取变量

    ctrl + alt + f 提取字段

    ctrl +alt+c 提取内容

    ctrl + alt + p 提取参数

    编译和运行

    ctrl + f9 标记项目(编译修改和依赖)

    ctrl + shift f9 编译选中的文件、包或模板

    shift + f10 运行或者调试(运行)

    ctrl + shift + f10 从编辑器运行上下文配置信息 (运行main方法)

    ctrl+k/ctrl + t 提交项目到版本控制/从版本控制中更新

    alt + shift + c 查看更新日志

    alt + backquote(`) 打开版本控制操作选项卡

    alt + [0-9] 打开对应的窗口

    ctrl + s 保存所有

    ctrl + alt + y 同步

    ctrl + shift + f12 切换最大化编辑器

    alt + shift + f 添加到收藏

    alt + shift + i 使用默认配置文件检查代码风格

    ctrl + backquote(`) 切换风格(view theme,code theme,key map,view mode)

    ctrl + alt + s 打开设置窗口

    ctrl + alt + shift + s 打开项目结构窗口

    ctrl + shift + a 执行命令(例如:Java Class

    Java Class: 在当前所在包新建文件
    rename file:重命名文件
    view mode:显示模式
    show in explorer: 打开文件所在文件夹
    .....
    

    ctrl + tab 在标签窗口和文件窗口之间切换

  • 任何文件或者文件夹列表或面板都支持搜索或筛选(直接键盘输入即可筛选)
  • 任何位置都支持方向键
  • Favorites很方便可以收藏记录重要的文件,方便检索
  • 任何对话框或窗口都可以通过esc退出
  • 任何导航窗口都可以通过shift + esc关闭
  • 任何选项卡都支持alt + </>(alt + 方向键左/方向键右)进行切换
  • 对于包可以通过enter进行展开或者关闭
  • 任何你看到的快捷键说明或者命令都可以通过命令行执行
  • alt+鼠标左键可进行多行操作
  • 对于搜索,连续按对应快捷键可切换查找源
  • alt + enter可以进行正则检查、json检查
  • 我们以文件和打开/关闭面板为例,来看下快捷键的使用:

    查找类文件

    可以通过 Command + o/Ctrl + o(字母o) 来搜索相关的类,只需要在输入框中输入你所需要查找的关键词,即可搜索对应的类,需要注意的是该搜索范围匹配类文件。

    如果你查找其他文件,例如项目的配置的文件 application.yml,那么你可以通过 Command + Shift + o/Ctrl + Shift + o 来进行查找:

    查看文件结构

    在打开一个文件之后(以 ArrayList)文件为例子,可以通过 Ctrl/Command + 7 来查看文件的结构:

    当然,也可以通过 Ctrl+F12/Command + F12 来查看文件的结构:

    在文件结构中(以类/接口/枚举/注解文件为例子),包含了属性、方法、字段。你可以通过改快捷键快速的去定位到对应的属性、方法、字段。只需要打开面板,然后输入需要匹配的关键词即可,例如查找 ArrayListadd 方法:

    除了支持 Java 文件(类、枚举、注解、接口等),在一些其他的文件上也有效果,例如 .xml 文件、.yml 文件等。

    查看类的继承体系

    鼠标右键悬浮在 Diagrams 然后选择 Show Diagram... 即可查看类的继承体系。

    ArrayList 为例子,呈现的效果如下图所示:

    打开/关闭 面板

    你可以通过 Ctrl/Command + 1-9 打开对应的面板,例如 Ctrl/Command + 1 可以打开 Project ,这是因为在对应的面板都有一个对应的数字标记:

    同样的道理:

  • 通过 Ctrl/Command + 2 可以打开收藏面板。
  • 通过 Ctrl/Command + 4 可以打开 Run 面板。 重复按下面板对应的快捷键即可关闭对应的面板,如果该面板有一个减号的 icon 你还可以通过 Shift + esc 去关闭: 当然,有些面板是没有数字标记的,比如 DataBaseMavenTerminal 等。我们会在稍后介绍在记不住快捷键的情况下,如何通过 指令/命令/action 来执行到对应的快捷键。
  • Ctrl/Command + Shift + A

    如果你记不住快捷键,如果你需要在 Mac/Linux/Windows 上使用 IltelliJ IDEA 又不想记每个版本对应的快捷键,那么推荐使用 Ctrl/Command + Shift + A 快捷键。 如果说每一个快捷键都对应一个操作(option)/动作(action),反过来,也可以通过一个操作(action)/动作(action)去执行快捷键对应的操作,这样带来的好处是:

  • 方便记忆,有些快捷键是没有语意的。
  • 解决了在 Mac/Linux/Windows 上使用 IltelliJ IDEA 需要记多份快捷键的烦恼。
  • 获取/了解有哪些 action

    打开 settings -> Keymap ,然后按住image.png按钮,执行对应的快捷键,即可找到该快捷键的action,例如在 Mac 中格式化代码的快捷键是 option + command + l ,该快捷键对应的 action 是 Reformat code。 当然,当你想要执行某些操作的时候,你只需要想如果让你命名这个操作,那么你会取什么名字,然后在 find in action 中尝试一下即可。

    执行action

    通过 Ctrl/Command + Shift + A 即可执行 action,例如格式化代码对应的 action 是 Reformat Code,我们只需要按下 Ctrl/Command + Shift + A ,然后在输入框中输入 Reformat Code 即可格式化代码:

    相对于记忆快捷键,记 action 方便了许多,而且对于一些默认不支持快捷键的操作,也可以通过 Ctrl/Command + Shift + A 去执行:

  • 想打开 Terminal 界面,只需要输入 terminal 即可。
  • 想打开 Database 界面,只需要输入 Database 即可。
  • 想进入设置页面,只需要输入 settings 即可。
  • 想进入插件管理页面,只需要输入 plugins 即可。
  • 想进入 Project Structure ,只需要输入 Project Structure 即可。
  • 想格式化代码,只需要输入 Reformat Code 即可。
  • 想生成 构造函数、getter/setter 方法等,只需要输入 Generate 即可。
  • 想查看该类的父类,只需要输入 Go to Super Class
  • 重命名文件,只需要输入 Rename File 即可。 当然 action 支持模糊检索,比如 Go to Super Class ,你只输入 super 也能匹配。
  • 更改快捷键

    通过 settings -> Keymap 打开对应的面板,可以输入 aciton 进行检索,也可以按住搜索 icon ,输入对应的快捷键搜索,检索到需要修改的项之后,点击第三个按钮即可进行对应的修改:

    image.png