文章目录
快捷键
智能代码快捷键
- Ctrl+Alt+O 优化导入的类和包
- Alt+Insert 生成代码(如get,set方法,构造函数等) 或者右键(Generate)
- fori/sout/psvm + Tab
- Ctrl+Alt+T 生成try catch 或者 Alt+enter
- CTRL+ALT+T 把选中的代码放在 TRY{} IF{} ELSE{} 里
- Ctr+shift+U 大小写转化
- ALT+回车 导入包,自动修正
- ALT+/ 代码提示
- CTRL+J 自动代码
- Ctrl+Shift+J,整合两行为一行
- CTRL+空格 代码提示
- CTRL+SHIFT+SPACE 自动补全代码
- CTRL+ALT+L 格式化代码
- CTRL+ALT+I 自动缩进
- CTRL+ALT+O 优化导入的类和包
- ALT+INSERT 生成代码(如GET,SET方法,构造函数等)
- CTRL+E 最近更改的代码
- CTRL+ALT+SPACE 类名或接口名提示
- CTRL+P 方法参数提示
- CTRL+Q,可以看到当前方法的声明
- Ctrl+Alt+V 提取变量
查询快捷键
- Ctrl+Shift+Backspace可以跳转到上次编辑的地
- CTRL+ALT+ left/right 前后导航编辑过的地方
- ALT+7 靠左窗口显示当前文件的结构
- Ctrl+F12 浮动显示当前文件的结构
- ALT+F7 找到你的函数或者变量或者类的所有引用到的地方
- CTRL+ALT+F7 找到你的函数或者变量或者类的所有引用到的地方
- Ctrl+Shift+Alt+N 查找类中的方法或变量或者快速找到Controller方法中对应的mapping映射路径
- 双击SHIFT 在项目的所有目录查找文件
- Ctrl+N 查找类
- Ctrl+Shift+N 查找文件
- CTRL+G 定位行
- CTRL+F 在当前窗口查找文本
- CTRL+SHIFT+F 在指定窗口查找文本
- CTRL+R 在 当前窗口替换文本
- CTRL+SHIFT+R 在指定窗口替换文本
- ALT+SHIFT+C 查找修改的文件
- CTRL+E 最近打开的文件
- F3 向下查找关键字出现位置
- SHIFT+F3 向上一个关键字出现位置
- 选中文本,按Alt+F3 ,高亮相同文本,F3逐个往下查找相同文本
- F4 查找变量来源
- CTRL+SHIFT+O 弹出显示查找内容
- Ctrl+W 选中代码,连续按会有其他效果
- F2 或Shift+F2 高亮错误或警告快速定位
- Ctrl+Up/Down 光标跳转到第一行或最后一行下
- Ctrl+B 快速打开光标处的类或方法
- CTRL+ALT+B 找所有的子类
- CTRL+SHIFT+B 找变量的类
- Ctrl+Shift+上下键 上下移动代码
- Ctrl+Alt+ left/right 返回至上次浏览的位置
- Ctrl+X 删除行
- Ctrl+D 复制行
- Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/…/ )
- Ctrl+H 显示类结构图
- Ctrl+Q 显示注释文档
- Alt+F1 查找代码所在位置
- Alt+1 快速打开或隐藏工程面板
- Alt+ left/right 切换代码视图
- ALT+ ↑/↓ 在方法间快速移动定位
- CTRL+ALT+ left/right 前后导航编辑过的地方
- Ctrl+Shift+Backspace可以跳转到上次编辑的地
- Alt+6 查找TODO
调试快捷键
- F7 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则会进入该内嵌的方法中 。
- F8 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内,跳到下一条执行语句。
- F9,恢复程序,直到下个断点或者程序结束为止。
- alt+F8 debug时选中查看值
- Alt+Shift+F9,选择 Debug
- Alt+Shift+F10,选择 Run
- Ctrl+Shift+F9,编译
- Ctrl+Shift+F8,查看断点
- Shift+F7,智能步入
- Alt+Shift+F7,强制步入
- Shift+F8,步出
- Alt+Shift+F8,强制步过
- Alt+F9,运行至光标处
- Ctrl+Alt+F9,强制运行至光标处
- Alt+F10,定位到断点
重构
- Ctrl+Alt+Shift+T 弹出重构菜单
- Shift+F6 重命名
- F6 移动
- F5 复制
- Alt+Delete 安全删除
- Ctrl+Alt+N 内联
- Ctrl + O 重写方法
- Ctrl + I 实现方法
- Shift+F6 重构-重命名 (包、类、方法、变量、甚至注释等)
其他快捷键
- SHIFT+ENTER 另起一行
- CTRL+Z 倒退(撤销)
- CTRL+SHIFT+Z 向前(取消撤销)
- CTRL+ALT+F12 资源管理器打开文件夹
- ALT+F1 查找文件所在目录位置
- SHIFT+ALT+INSERT 竖编辑模式
- CTRL+F4 关闭当前窗口
- Ctrl+Alt+V,可以引入变量。例如:new String(); 自动导入变量定义
- Ctrl+~,快速切换方案(界面外观、代码风格、快捷键映射等菜单)
- ctrl+k 提交代码到SVN或Git
- ctrl+t 更新代码
- Ctrl+Shift+A 可以查找所有Intellij的命令,并且每个命令后面还有其快捷键。
自动编写代码
首先来看一下下面这张图,在方法里面有效位置后面输入一个.,最后面会列表所有可用的自动补全的关键字,这也就是今天要分享的内容。
下面再介绍几个它们的用法,其实很简单,跟上次一样,这次我同样还是录了动图,这样看得更直观,看起来更牛逼。。
1、快速打印输出
除了用 sout 开头快速生成,还能在后面快速生成。
2、快速定义局部变量
在字符串或者数字……后面输入 .var,回车,IDEA会自动推断并快速定义一个局部变量,不过它是 final 类型的。
3、快速定义成员变量
在值后面输入.field,可以快速定义一个成员变量,如果当前方法是静态的,那生成的变量也是静态的。
4、快速格式化字符串
在字符串后面输入.format,回车,IDEA会自动生成 String.format…语句,牛逼吧!
5、快速判断(非)空
if (xx != null)if (xx == null)null)
if (xx == null)
像上面这种判断空/非空的情况非常多吧,其实可以快速生成 if 判断语句块,非空:.notnull 或者 .nn,空:.null。
6、快速取反判断
输入 .not 可以让布尔值快速取反,再输入 .if 可快速生成 if 判断语句块。
7、快速遍历集合
下面是几种 for 循环语句的快速生成演示,.for, .fori, .forr 都可以满足你的要求。
8、快速返回值
在值后面输入.return,可以让当前值快速返回。
9、快速生成同步锁
在对象后面输入.synchronized,可以快速生成该对象的同步锁语句块。
10、快速生成JDK8语句
下面演示的是快速生成 Lambda 以及 Optional 语句。
自定义代码模板
IDEA 中有以下两种配置模板。
- File and Code Templates
- Live Templates
下面介绍下这两种的使用方法。
File and Code Templates
File and Code Templates 用来配置文件和代码模板,即文件在创建的时候自动会按文件模板生成代码注释。
依次打开下面这个菜单:
Editor > File and Code Templates > files
里面自带了很多文件的注释模板,只不过要自己设置,这个 class 里面的内容就是自带的,里面有一个 #parse
的代码。
#parse("File Header.java")
这个 File Header.java 哪里来的呢?
依次打开下面这个菜单:
Editor > File and Code Templates > files > Includes
其实这个 Includes 就是前面 Files 模板里面 parse 引用的片段而已。File Header 这里默认是空的,然后在这个片段里面编辑模板即可,支持一些预定义的变量,如:DATE、TIME、USER 等,上图给的是配置示例。
这里的 Java 类自动生成类注释就配置完那个 File Header 就行了,配置完后,随便创建一个类就会自动带上注释。
Live Templates
Live Templates 用来配置动态模板,可以在指定位置使用缩写字母自动生成注释。下面演示两个创建示例,手动生成类注释、方法注释。
上面演示的是创建类的时候自动添加注释,如果想手动添加类注释,怎么加?
首先打开 Live Templates 菜单:
Editor > Live Tempaltes
右上角有个 + 号,点击选择 Live Template 添加一个动态模板,依次配置下面的内容。
- abbreviation: 模板缩写
- Description: 模板描述
- Template Text: 模板内容
Template Text 里面美元符号包起来的是变量,需要点击 Edit variable
按钮来设置这些变量。
另外,就是设置模板使用的场景,如以下所示,点击 Define 链接,设置类模板只能在 Java 语言下使用。
神奇的代码注释模板
推荐一个查找各种模板的网站: Ascii World
当然也可以拿来做Spring boot的启动banner
比如下面这样的:
/***
* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
* │Esc│ │ F1│ F2│ F3│ F4│ │ F5│ F6│ F7│ F8│ │ F9│F10│F11│F12│ │P/S│S L│P/B│ ┌┐ ┌┐ ┌┐
* └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └┘ └┘ └┘
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
* │~ `│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ BacSp │ │Ins│Hom│PUp│ │N L│ / │ * │ - │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│ | \ │ │Del│End│PDn│ │ 7 │ 8 │ 9 │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │
* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter │ │ 4 │ 5 │ 6 │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤
* │ Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │
* ├─────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤ E││
* │ Ctrl│ │Alt │ Space │ Alt│ │ │Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │←─┘│
* └─────┴────┴────┴───────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
*/
/***
* _ooOoo_
* o8888888o
* 88" . "88
* (| -_- |)
* O\ = /O
* ____/`---'\____
* . ' \\| |// `.
* / \\||| : |||// \
* / _||||| -:- |||||- \
* | | \\\ - /// | |
* | \_| ''\---/'' | |
* \ .-\__ `-` ___/-. /
* ___`. .' /--.--\ `. . __
* ."" '< `.___\_<|>_/___.' >'"".
* | | : `- \`.;`\ _ /`;.`/ - ` : | |
* \ \ `-. \_ __\ /__ _/ .-` / /
* ======`-.____`-.___\_____/___.-`____.-'======
* `=---='
*
* .............................................
* 佛祖保佑 永无BUG
*/