简介
本文介绍Intellij IDEA的常用快捷键,分类将其展示。包括:代码提示、日常编辑、代码导航、查找与替换、模板快捷键、注释快捷键、宏快捷键、git、调试等。
包含:默认快捷键、如何修改快捷键(自定义快捷键)等。
此设置教程也适用于WebStorm,Pycharm等Intellij系列的软件。
配置方法
配置入口
- 进入项目之前的配置方法:Customize=> Keymap=> Configure
- 进入项目之后的配置方法:File=> Settings=>Keymap
按键加鼠标快捷键设置方法
以ctrl+alt+鼠标右键为例
File=> Settings=>Keymap=> 找到“Go to Super Method”=> 右键=> Add Mouse ShortCut=> 按下ctrl+alt+鼠标右键
导入导出
建议直接使用此文的导入导出,可以导入导出所有配置:Intellij IDEA-导入导出配置 – 自学精灵。
如果你想单独导出快捷键,可以看下边的方法:
快捷键配置文件目录
2020.3.2及之后默认配置位置:C:\Users\Liu\AppData\Roaming\JetBrains\IntelliJIdea2020.3\keymaps\
2020.3.2之前的默认配置位置:C:\Users\xxx\.IntelliJIdea20XX.X\config\keymaps\
导出
首先要改一个快捷键(比如:alt+x:Extend Line Selection),此时会在快捷键配置文件目录下生成配置文件:Windows copy.xml。
以后所有的自定义快捷键的配置都会放到这个文件当中去,所以这个文件就是自定义快捷键的导出的方法了。
将Default for Windows copy.xml拷贝过去。然后进:Configure=> Settings=>Keymap=> 选择使用Default for Windows copy.xml
导入
假设我们已经导出快捷键配置并将其保存为:Default for Windows Copy.xml文件。
新安装完软件之后,仍然改一个快捷键(比如:alt+x:Extend Line Selection),这样会生成快捷键配置文件的目录(keymaps目录),在快捷键配置文件目录下生成配置文件:Windows copy.xml。(因为默认是没有快捷键的配置文件目录及配置文件的)。
将Default for Windows copy.xml拷贝到Windows copy.xml所在目录下过去。然后进:Configure=> Settings=>Keymap=> 选择使用Default for Windows copy.xml
代码提示
我的快捷键 | 原来快捷键 | 作用 | 对应描述/备注 |
alt+. | ctrl+空格 | 基础代码补全。 | Basic ctrl+空格 被输入法占用了。 |
ctrl+shift+空格 | 同 | 智能代码提示。 比如:填充参数 | SmartType |
alt+enter | 同 | 根据光标所在位置,提供快速修复选择。 | Create getter and setter for ‘xxx’ 例如:设置某一成员getter与setter:选中成员=>alt+enter=> |
ctrl+j | 同 | 插入实时模板。 比如:FIXME、TODO | Insert Live Template |
ctrl+shift+i | 同 | 快速定义。 | Quick Definition |
ctrl+q | 同 | 查看方法文档。 | 选中方法=>ctrl+q |
alt+q | 同 | 上下文信息 | Context Info |
ctrl+o | 同 | 覆写方法/实现接口库 | Override Methods |
ctrl+i | 同 | 实现接口 | Implement Methods… |
shift+alt+enter | 同 | 导入类 | 光标放到没有导入类的红色内容,按下快捷键 |
ctrl+alt+o | 同 | 优化导入(自动删除import的包) | Optimize Imports 此快捷键与QQ冲突,将QQ的去掉即可。 |
ctrl+alt+l | 同 | 整理代码格式 | Reformat Code |
alt+l | 无 | 修复Eslint问题 | Fix ESLint Problems |
ctrl+alt+j | 同 | 把选中代码用实时模板包围。 | Surround with Live Template |
ctrl+alt+F7 | 同 | 查看语句可以抛出的异常。 | 将鼠标放到会抛出异常的语句上,按下快捷键 |
日常编辑
我的快捷键 | 原来快捷键 | 作用 | 对应描述/备注 |
alt+enter | 添加声明 输入new String后alt+enter,可以自动填充String string = xxx | Show Context Actions | |
ctrl+enter | alt+insert | 自动生成代码。如: getter/setter, 构造函数, toString | Generate… 光标放在类里边=>alt+insert=> Getter and setter=> ctrl + a=> ok |
shift+enter | ctrl+shift+enter | 结束当前语句。 (格式化当前语句;若是调用方法则以分号结尾;若是编写方法则添加大括号) | Complete Current Statement |
ctrl+shift+enter | shift+enter | 在下方插入新行(先跳出任意位置再插入) | Start New Line |
ctrl+alt+enter | 同 | 在上方插入新行(先跳出任意位置再插入) | Start New Line before current |
tab | 同 | 跳出引号/括号(只能跳一次) | Editor=> General=> Smart Keys=> Jump outside closing bracket/quote with Tab when typing |
alt+x | 无 | 选中一行 | Extend Line Selection //或:Select Single Line at Caret |
alt+d | ctrl+y | 删除一行 | Delete Line |
ctrl+d | 复制 行或者选中 | 复制光标所在的行或者选中的内容 Duplicate Line or Selection | |
ctrl+y | ctrl+shift+z | 取消撤销 | Redo |
alt+e | ctrl+w | 扩选 | 对小括号、尖括号、中括号里的内容进行扩选。 Extend Selection |
ctrl+/ | 同 | 行 注释/取消注释。(//) | Comment with Line Comment 默认在行首加//,在字母前加注释的方法:File=> Settings=> Editor=> Code Style=> Java=> Code Generate=> Comment Code=> 取消“Line comment at first column”=> 选中“Add a space at comment start” |
ctrl+shift+/ | 同 | 块 注释/取消注释(/* */) | Comment with Block Comment |
ctrl+alt+l | 同 | 格式化代码(按编码规范) | Reformat Code |
ctrl + home/end | 同 | 跳到文件开头/结尾 | |
shift+alt+鼠标 //alt+鼠标 | 同 | 列模式选择 | |
shift+alt+鼠标双击 | 同 | 选中多个单词 | |
ctrl+shift+u | 同 | 将选中内容都转成大写/小写 | Edit=> Toggle Case |
代码导航
我的快捷键 | 原来快捷键 | 作用 | 对应描述/备注 |
ctrl+p | 同 | 查看参数信息。 | 光标放在被调用方法的圆括号内,然后按此快捷键 |
ctrl+h | 同 | 查看类继承关系。(分层折叠,很方便) | Type Hierarchy |
ctrl+alt+h | 同 | 查看方法调用链 | Call Hierarchy |
ctrl+shift+t | ctrl+n | 搜索并查看类文件/符号(方法等) | Class |
ctrl+鼠标左键 | 同 | 查看方法定义/调用(会打开其文件) | 若为定义,则查看调用;若为调用,则查看定义 |
ctrl+alt+鼠标左键 | 同 | 查看接口实现。 | Implementation(s) |
ctrl+alt+鼠标右键 | ctrl+u | 查看父类方法(包括接口方法)。 | Go to Super Method |
ctrl+鼠标悬浮 | 同 | 查看位置和定义(不会打开其文件) | 查看简略定义 |
alt+7 | 同 | 查看结构 | Structure |
F2 | 同 | 跳到下一个错误 | Next Highlighted Error |
shift+F2 | 同 | 跳到上一个错误 | Previous Highlighted Error |
ctrl + [ | 同 | 跳到代码块开始([]或者{}) | Move Caret to Code Block Start |
ctrl + ] | 同 | 跳到代码块结束([]或者{}) | Move Caret to Code Block End |
ctrl+shift+m | 同 | 跳到大括号的开头/结尾 | Move Caret to Matching Brace |
ctrl+shift+F7 | 同 | 高亮当前文件的某个变量 | 按F3/shift+F3在各个高亮的变量上移动。 按Esc移除高亮 |
查找替换
我的快捷键 | 原来快捷键 | 作用 | 对应描述/备注 |
ctrl+shift+f | 同 | 查找字符串。指定区域(项目、模块、路径)内代码批量查找 | Find in Path |
ctrl+alt+f | shift+shift | 查找所有位置(可选择文件、类、符号(symbols))等 *:匹配任意多个字符 空格:pattern的结束 | Search Everywhere 取消方法: 2021.2.2及之后: File=> Settings=> Advanced Settings=> User Interface=> 选中“Disable double modifier key shortcuts” 2021.2.2之前: ctrl+shift+alt+/ => registry=> 勾选“ide.suppress.double.click.handler” (或:control+shift+t=> actions=> “registry”) |
ctrl+r | 同 | 替换 | |
ctrl+shift+r | 同 | 指定区域(项目、模块、路径)内代码批量替换(字符串) | Replace in Path |
F3 / ctrl+F3 | 同 | 在本文件中跳到下一个查找项并高亮 可以用于ctrl+f的查找 / 选中直接查找 | Find Next / Move to Next Occurence |
shift + F3 | 同 | 在本文件中跳到上一个查找项并高亮 可以用于ctrl+f的查找 / 选中直接查找 | Find Previous / Move to Previous Occurence |
重构
通用
我的快捷键 | 原来快捷键 | 作用 | 对应描述/备注 |
shift + F6 | 同 | 重命名(类名、方法名、属性名等) | Refactor |
F6 | 同 | 移动成员位置(属性、方法) | Refactor=> Move Members |
方法重构
我的快捷键 | 原来快捷键 | 作用 | 对应描述/备注 |
ctrl + F6 | 同 | 修改方法签名(返回值类型、方法名、参数类型及名字) | Refactor=> Change Signature |
ctrl + alt + m | 同 | 将当前选择的内容提取为方法 | Refactor=> Extract=> Method |
ctrl + alt + n | 同 | 将当前选择的方法铺开(内联) (与ctrl + alt + m相反) | Refactor=> Inline |
ctrl + alt + p | 同 | 提取当前选择为方法参数 | Refactor=> Extract=> Parameter |
无 | 无 | 实例方法转为静态方法 | Refactor=> Make Static |
无 | 无 | 静态方法转为实例方法 | Refactor=> Convert To Instance Method |
变量重构
我的快捷键 | 原来快捷键 | 作用 | 对应描述/备注 |
ctrl + alt + v | 同 | 提取当前选择为变量 | Refactor=> Extract=>=> Variable |
ctrl + alt + f | 同 | 提取当前选择为类的私有属性 | Refactor=> Extract=> Field |
ctrl + alt + c | 同 | 提取当前选择为常量 | Refactor=> Extract=> Constant |
ctrl + shift + f6 | 同 | 修改变量的类型 | Refactor=> Type Migration |
类重构
文件
我的快捷键 | 原来快捷键 | 作用 | 对应描述/备注 |
ctrl+w | ctrl+f4 | 关闭当前文件 | Close |
ctrl+shift+w | 无 | 关闭所有文件 | Close All |
ctrl+e | 同 | 查找最近打开过的文件 | Recent Files |
ctrl+shift+e | 同 | 查找最近的文件位置 | Recent Locations |
shift+alt+c | 同 | 查找最近修改的文件 | Recent Changes |
模板
默认的(标准错误/标准输出)
模板 | 作用 | 模板内容 |
serr | 不自动填充 | System.err.println(); |
sout | 不自动填充 | System.out.println(); |
soutm | 打印当前类和方法(自动填充) | System.out.println(xxx); |
soutp | 打印参数名和值(自动填充) | System.out.println(xxx); |
soutv | 打印单个变量名和值(自动填充且可选是哪个变量) | System.out.println(xxx); |
soutl | 打印System.out::println | System.out::println |
默认的(其他)
模板 | 作用 | 模板内容 |
fori | 打印for循环语句 | for (int xxx = 0; xxx < yyy; xxx++) { } |
main/psvm | 打印主方法 | public static void main(String[] args) {} |
我的模板(output_my)
模板 | 作用 | 模板内容 |
soutd | 打印调试信息(类,方法,行号) | System.out.println(xxx); |
自定义模板的方法(以soutd为例):
File=> Settings=> Editor=> Live Templates=> 右侧“+”=> Template Group…=> 输入“output_my”=>
选中”output_my”=> 右上角“+”=> Live Template=>
“Abbreviation”输入:“soutd”,“Description”输入“Prints debug info to System.out”=>
“Template text”输入如下语句
System.out.println("[$CLASS_NAME$#$METHOD_NAME$]: $LINE_NUMBER$");
右侧Edit variables:输入相应的参数名及方法 (若“Template text”中没有$xxx$,则“Edit variables”是灰色的)
箭头处选择语言为Java
注释
类注释/方法注释(自带的)
在类或方法外部输入“/**”,然后回车。
类注释(自定义的)
File=> Settings…=> Editor=> File and Code Templates=> Includes=> File Header
/** * @author somebody * @date ${DATE} ${TIME} */
方法注释(自定义的)
File=> Settings=> Live Templates=> 右侧“+”=> Template Group=> 本处写为“output_my”=> 选中这个分组=> 右侧“+”=> Live Template=>
param对应的Expressions:
groovyScript("def result = '';def params = \"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {if(params[i] != '')result+='* @param ' + params[i] + ((i < params.size() - 1) ? '\\r\\n ' : '')}; return result == '' ? null : '\\r\\n ' + result", methodParameters())
return 对应的Expressions:
groovyScript("return \"${_1}\" == 'void' ? null : '\\r\\n * @return ' + \"${_1}\"", methodReturnType())
示例:
注意
1. 在方法内部按下cmt,回车即可。然后将其拷贝到方法前边
2. @param后边的参数会有黄色波浪线,警告为:@param XX tag description is missing。
解决方法:1.在后边再写一点东西 2.File=> setting=> inspections=> Java=> Javadoc=> 取消选中“Declaration has Javadoc problems”
git
我的快捷键 | 原来快捷键 | 作用 | 对应描述/备注 |
ctrl+shift+a | ctrl+alt+a | git add | Add to VCS |
ctrl+shift+c | 无 | git commit | Commit File |
ctrl+shift+p | ctrl+shift+k | git push | Push |
调试
我的快捷键 | 原来快捷键 | 作用 | 对应描述/备注 |
alt+z | shift+f9 | 调试 | Debug |
请先
!