目录
1:IDEA的工程(Project)和模块(Module)机制
2:idea的快捷键
Ctrl
Alt
Shift
Ctrl + Alt
Ctrl + Shift
Alt + Shift
Ctrl + Shift + Alt
其他
3:idea实时代码模板 --位置:(Editor – Live Templates 和 Editor – General – Postfix Completion)
1.Live Templates( 实时 代码模板) 功能
2. 已有的常用模板
Live Templates 和 Postfix Completion二者的区别:
例子:
2.1 psvm : 可生成 main 方法
2.2 sout : System.out.println() 快捷输出
2.3 fori : 可生成 for 循环
2.4 list.for : 可生成集合 list 的 的 for 循环
2.5 ifn :可生成 if(xxx = null)
2.6 prsf :可生成 private static final
3:自定义模板
自定义变量
4:自定义文件模板
文件代码模板预设的变量
5:IDEA链接数据库
1. 关联方式
2. 常用 操作
6:其他常用设置;
1:生成javadoc
2:缓存 和索引的 清理;
3:取消更新;
4:安装插件;
正所谓工欲善其事必先利其器,对开发人员而言若想提高编码效率,一款高效的开发工具是必不可少的,相信看到该博客的朋友们都已经对IntelliJ IDEA有所了解了,所以此处就不对IntelliJ IDEA进行介绍,而是直接阐述在实际开发中应用场景。博主使用的IntelliJ IDEA版本为IntelliJ IDEA 2017,因为博主是一名Java开发工程师,所以以下内容均以Java为主。(相信有不少人和我一样是从Eclipse转粉IntelliJ IDEA,在学习IntelliJ IDEA前请尽量忘记Eclipse有关知识)在学习过程中主要参考了https://github.com/judasn/IntelliJ-IDEA-Tutorial,该教程对IntelliJ IDEA介绍十分详细(从零基础开始),你们可以直接点击以上链接进行学习。至于为什么写这篇博文,我的目的是想把自己的个性化配置记录下来,当然如果与此同时能帮助到其他人,岂不美哉,本文将持续更新,由于本文内容较多建议读者从目录树上定位想要获取的配置信息
Project
是由一个或多个 Module
组成,模块之间尽量是处在同一个项目业务的的情况下,彼此之间互相依赖关联。这里用的是 尽量
,因为 IntelliJ IDEA 的 Project 是一个没有具备任何编码设置、构建等开发功能的,主要起到一个项目定义、范围约束、规范等类型的效果,也许我们可以简单地理解为就是一个单纯的目录,只是这个目录命名上必须有其代表性的意义。快捷键 | 介绍 |
---|---|
Ctrl + F | 在当前文件进行文本查找 (必备) |
Ctrl + R | 在当前文件进行文本替换 (必备) |
Ctrl + Z | 撤销 (必备) |
Ctrl + Y | 删除光标所在行 或 删除选中的行 (必备) |
Ctrl + X | 剪切光标所在行 或 剪切选择内容 |
Ctrl + C | 复制光标所在行 或 复制选择内容 |
Ctrl + D | 复制光标所在行 或 复制选择内容,并把复制内容插入光标位置下面 (必备) |
Ctrl + W | 递进式选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展选中范围 (必备) |
Ctrl + E | 显示最近打开的文件记录列表 (必备) |
Ctrl + N | 根据输入的 类名 查找类文件 (必备) |
Ctrl + G | 在当前文件跳转到指定行处 |
Ctrl + J | 插入自定义动态代码模板 (必备) |
Ctrl + P | 方法参数提示显示 (必备) |
Ctrl + Q | 光标所在的变量 / 类名 / 方法名等上面(也可以在提示补充的时候按),显示文档内容 |
Ctrl + U | 前往当前光标所在的方法的父类的方法 / 接口定义 (必备) |
Ctrl + B | 进入光标所在的方法/变量的接口或是定义处,等效于 Ctrl + 左键单击 (必备) |
Ctrl + K | 版本控制提交项目,需要此项目有加入到版本控制才可用 |
Ctrl + T | 版本控制更新项目,需要此项目有加入到版本控制才可用 |
Ctrl + H | 显示当前类的层次结构 |
Ctrl + O | 选择可重写的方法 |
Ctrl + I | 选择可继承的方法 |
Ctrl + + | 展开代码 |
Ctrl + - | 折叠代码 |
Ctrl + / | 注释光标所在行代码,会根据当前不同文件类型使用不同的注释符号 (必备) |
Ctrl + [ | 移动光标到当前所在代码的花括号开始位置 |
Ctrl + ] | 移动光标到当前所在代码的花括号结束位置 |
Ctrl + F1 | 在光标所在的错误代码处显示错误信息 (必备) |
Ctrl + F3 | 调转到所选中的词的下一个引用位置 (必备) |
Ctrl + F4 | 关闭当前编辑文件 |
Ctrl + F8 | 在 Debug 模式下,设置光标当前行为断点,如果当前已经是断点则去掉断点 |
Ctrl + F9 | 执行 Make Project 操作 |
Ctrl + F11 | 选中文件 / 文件夹,使用助记符设定 / 取消书签 (必备) |
Ctrl + F12 | 弹出当前文件结构层,可以在弹出的层上直接输入,进行筛选 |
Ctrl + Tab | 编辑窗口切换,如果在切换的过程又加按上delete,则是关闭对应选中的窗口 |
Ctrl + End | 跳到文件尾 |
Ctrl + Home | 跳到文件头 |
Ctrl + Space | 基础代码补全,默认在 Windows 系统上被输入法占用,需要进行修改,建议修改为 Ctrl + 逗号 (必备) |
Ctrl + Delete | 删除光标后面的单词或是中文句 (必备) |
Ctrl + BackSpace | 删除光标前面的单词或是中文句 (必备) |
Ctrl + 1,2,3...9 | 定位到对应数值的书签位置 (必备) |
Ctrl + 左键单击 | 在打开的文件标题上,弹出该文件路径 (必备) |
Ctrl + 光标定位 | 按 Ctrl 不要松开,会显示光标所在的类信息摘要 |
Ctrl + 左方向键 | 光标跳转到当前单词 / 中文句的左侧开头位置 (必备) |
Ctrl + 右方向键 | 光标跳转到当前单词 / 中文句的右侧开头位置 (必备) |
Ctrl + 前方向键 | 等效于鼠标滚轮向前效果 (必备) |
Ctrl + 后方向键 | 等效于鼠标滚轮向后效果 (必备) |
快捷键 | 介绍 |
---|---|
Alt + ` | 显示版本控制常用操作菜单弹出层 (必备) |
Alt + Q | 弹出一个提示,显示当前类的声明 / 上下文信息 |
Alt + F1 | 显示当前文件选择目标弹出层,弹出层中有很多目标可以进行选择 (必备) |
Alt + F2 | 对于前面页面,显示各类浏览器打开目标选择弹出层 |
Alt + F3 | 选中文本,逐个往下查找相同文本,并高亮显示 |
Alt + F7 | 查找光标所在的方法 / 变量 / 类被调用的地方 |
Alt + F8 | 在 Debug 的状态下,选中对象,弹出可输入计算表达式调试框,查看该输入内容的调试结果 |
Alt + Home | 定位 / 显示到当前文件的 Navigation Bar |
Alt + Enter | IntelliJ IDEA 根据光标所在问题,提供快速修复选择,光标放在的位置不同提示的结果也不同 (必备) |
Alt + Insert | 代码自动生成,如生成对象的 set / get 方法,构造函数,toString() 等 (必备) |
Alt + 左方向键 | 切换当前已打开的窗口中的子视图,比如Debug窗口中有Output、Debugger等子视图,用此快捷键就可以在子视图中切换 (必备) |
Alt + 右方向键 | 按切换当前已打开的窗口中的子视图,比如Debug窗口中有Output、Debugger等子视图,用此快捷键就可以在子视图中切换 (必备) |
Alt + 前方向键 | 当前光标跳转到当前文件的前一个方法名位置 (必备) |
Alt + 后方向键 | 当前光标跳转到当前文件的后一个方法名位置 (必备) |
Alt + 1,2,3...9 | 显示对应数值的选项卡,其中 1 是 Project 用得最多 (必备) |
快捷键 | 介绍 |
---|---|
Shift + F1 | 如果有外部文档可以连接外部文档 |
Shift + F2 | 跳转到上一个高亮错误 或 警告位置 |
Shift + F3 | 在查找模式下,查找匹配上一个 |
Shift + F4 | 对当前打开的文件,使用新Windows窗口打开,旧窗口保留 |
Shift + F6 | 对文件 / 文件夹 重命名 |
Shift + F7 | 在 Debug 模式下,智能步入。断点所在行上有多个方法调用,会弹出进入哪个方法 |
Shift + F8 | 在 Debug 模式下,跳出,表现出来的效果跟 F9 一样 |
Shift + F9 | 等效于点击工具栏的 Debug 按钮 |
Shift + F10 | 等效于点击工具栏的 Run 按钮 |
Shift + F11 | 弹出书签显示层 (必备) |
Shift + Tab | 取消缩进 (必备) |
Shift + ESC | 隐藏当前 或 最后一个激活的工具窗口 |
Shift + End | 选中光标到当前行尾位置 |
Shift + Home | 选中光标到当前行头位置 |
Shift + Enter | 开始新一行。光标所在行下空出一行,光标定位到新行位置 (必备) |
Shift + 左键单击 | 在打开的文件名上按此快捷键,可以关闭当前打开文件 (必备) |
Shift + 滚轮前后滚动 | 当前文件的横向滚动轴滚动 (必备) |
快捷键 | 介绍 |
---|---|
Ctrl + Alt + L | 格式化代码,可以对当前文件和整个包目录使用 (必备) |
Ctrl + Alt + O | 优化导入的类,可以对当前文件和整个包目录使用 (必备) |
Ctrl + Alt + I | 光标所在行 或 选中部分进行自动代码缩进,有点类似格式化 |
Ctrl + Alt + T | 对选中的代码弹出环绕选项弹出层 (必备) |
Ctrl + Alt + J | 弹出模板选择窗口,将选定的代码加入动态模板中 |
Ctrl + Alt + H | 调用层次 |
Ctrl + Alt + B | 在某个调用的方法名上使用会跳到具体的实现处,可以跳过接口 |
Ctrl + Alt + C | 重构-快速提取常量 |
Ctrl + Alt + F | 重构-快速提取成员变量 |
Ctrl + Alt + V | 重构-快速提取变量 |
Ctrl + Alt + Y | 同步、刷新 |
Ctrl + Alt + S | 打开 IntelliJ IDEA 系统设置 (必备) |
Ctrl + Alt + F7 | 显示使用的地方。寻找被该类或是变量被调用的地方,用弹出框的方式找出来 |
Ctrl + Alt + F11 | 切换全屏模式 |
Ctrl + Alt + Enter | 光标所在行上空出一行,光标定位到新行 (必备) |
Ctrl + Alt + Home | 弹出跟当前文件有关联的文件弹出层 |
Ctrl + Alt + Space | 类名自动完成 |
Ctrl + Alt + 左方向键 | 退回到上一个操作的地方 (必备) |
Ctrl + Alt + 右方向键 | 前进到上一个操作的地方 (必备) |
Ctrl + Alt + 前方向键 | 在查找模式下,跳到上个查找的文件 |
Ctrl + Alt + 后方向键 | 在查找模式下,跳到下个查找的文件 |
Ctrl + Alt + 右括号(]) | 在打开多个项目的情况下,切换下一个项目窗口 |
Ctrl + Alt + 左括号([) | 在打开多个项目的情况下,切换上一个项目窗口 |
快捷键 | 介绍 |
---|---|
Ctrl + Shift + F | 根据输入内容查找整个项目 或 指定目录内文件 (必备) |
Ctrl + Shift + R | 根据输入内容替换对应内容,范围为整个项目 或 指定目录内文件 (必备) |
Ctrl + Shift + J | 自动将下一行合并到当前行末尾 (必备) |
Ctrl + Shift + Z | 取消撤销 (必备) |
Ctrl + Shift + W | 递进式取消选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展取消选中范围 (必备) |
Ctrl + Shift + N | 通过文件名定位 / 打开文件 / 目录,打开目录需要在输入的内容后面多加一个正斜杠 (必备) |
Ctrl + Shift + U | 对选中的代码进行大 / 小写轮流转换 (必备) |
Ctrl + Shift + T | 对当前类生成单元测试类,如果已经存在的单元测试类则可以进行选择 (必备) |
Ctrl + Shift + C | 复制当前文件磁盘路径到剪贴板 (必备) |
Ctrl + Shift + V | 弹出缓存的最近拷贝的内容管理器弹出层 |
Ctrl + Shift + E | 显示最近修改的文件列表的弹出层 |
Ctrl + Shift + H | 显示方法层次结构 |
Ctrl + Shift + B | 跳转到类型声明处 (必备) |
Ctrl + Shift + I | 快速查看光标所在的方法 或 类的定义 |
Ctrl + Shift + A | 查找动作 / 设置 |
Ctrl + Shift + / | 代码块注释 (必备) |
Ctrl + Shift + [ | 选中从光标所在位置到它的顶部中括号位置 (必备) |
Ctrl + Shift + ] | 选中从光标所在位置到它的底部中括号位置 (必备) |
Ctrl + Shift + + | 展开所有代码 (必备) |
Ctrl + Shift + - | 折叠所有代码 (必备) |
Ctrl + Shift + F7 | 高亮显示所有该选中文本,按Esc高亮消失 (必备) |
Ctrl + Shift + F8 | 在 Debug 模式下,指定断点进入条件 |
Ctrl + Shift + F9 | 编译选中的文件 / 包 / Module |
Ctrl + Shift + F12 | 编辑器最大化 (必备) |
Ctrl + Shift + Space | 智能代码提示 |
Ctrl + Shift + Enter | 自动结束代码,行末自动添加分号 (必备) |
Ctrl + Shift + Backspace | 退回到上次修改的地方 (必备) |
Ctrl + Shift + 1,2,3...9 | 快速添加指定数值的书签 (必备) |
Ctrl + Shift + 左键单击 | 把光标放在某个类变量上,按此快捷键可以直接定位到该类中 (必备) |
Ctrl + Shift + 左方向键 | 在代码文件上,光标跳转到当前单词 / 中文句的左侧开头位置,同时选中该单词 / 中文句 (必备) |
Ctrl + Shift + 右方向键 | 在代码文件上,光标跳转到当前单词 / 中文句的右侧开头位置,同时选中该单词 / 中文句 (必备) |
Ctrl + Shift + 前方向键 | 光标放在方法名上,将方法移动到上一个方法前面,调整方法排序 (必备) |
Ctrl + Shift + 后方向键 | 光标放在方法名上,将方法移动到下一个方法前面,调整方法排序 (必备) |
快捷键 | 介绍 |
---|---|
Alt + Shift + N | 选择 / 添加 task (必备) |
Alt + Shift + F | 显示添加到收藏夹弹出层 / 添加到收藏夹 |
Alt + Shift + C | 查看最近操作项目的变化情况列表 |
Alt + Shift + I | 查看项目当前文件 |
Alt + Shift + F7 | 在 Debug 模式下,下一步,进入当前方法体内,如果方法体还有方法,则会进入该内嵌的方法中,依此循环进入 |
Alt + Shift + F9 | 弹出 Debug 的可选择菜单 |
Alt + Shift + F10 | 弹出 Run 的可选择菜单 |
Alt + Shift + 左键双击 | 选择被双击的单词 / 中文句,按住不放,可以同时选择其他单词 / 中文句 (必备) |
Alt + Shift + 前方向键 | 移动光标所在行向上移动 (必备) |
Alt + Shift + 后方向键 | 移动光标所在行向下移动 (必备) |
快捷键 | 介绍 |
---|---|
Ctrl + Shift + Alt + V | 无格式黏贴 (必备) |
Ctrl + Shift + Alt + N | 前往指定的变量 / 方法 |
Ctrl + Shift + Alt + S | 打开当前项目设置 (必备) |
Ctrl + Shift + Alt + C | 复制参考信息 |
快捷键 | 介绍 |
---|---|
F2 | 跳转到下一个高亮错误 或 警告位置 (必备) |
F3 | 在查找模式下,定位到下一个匹配处 |
F4 | 编辑源 (必备) |
F7 | 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中 |
F8 | 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内 |
F9 | 在 Debug 模式下,恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上 |
F11 | 添加书签 (必备) |
F12 | 回到前一个工具窗口 (必备) |
Tab | 缩进 (必备) |
ESC | 从工具窗口进入代码文件窗口 (必备) |
连按两次Shift | 弹出 Search Everywhere 弹出层 |
它的原理就是配置一些常用代码字母缩写,在输入简写时可以出现你预定义的固
IntelliJ IDEA 的安装 、 配置 与使用
定模式的代码,使得开发效率大大提高,同时也可以增加个性化。最简单的例子
就是在 Java 中输入 sout 会出现 System.out.println();
Postfix Completion 默认如下
Live Templates默认如下 :
Live Templates 可以自定义,而 Postfix Completion 不可以。同时,
有些操作二者都提供了模板,Postfix Templates 较 Live Templates 能快 0.01 秒
类似的:
soutp=System.out.println("方法形参名 = " + 形参名);
soutv=System.out.println("变量名 = " + 变量);
soutm=System.out.println("当前类名.当前方法");
“abc”.sout => System.out.println("abc");
类似的:
IntelliJ IDEA 的安装 、 配置 与使用
iter:可生成增强 for 循环
itar:可生成普通 for 循环
List
输入: list.for 即可输出
for(String s:list){
}
又如:list.fori 或 list.forr
类似的:
inn:可生成 if(xxx != null) 或 xxx.nn 或 xxx.null
类似的:
psf:可生成 public static final
psfi:可生成 public static final int
psfs:可生成 public static final String
IDEA 提供了很多现成的 Templates。但你也可以根据自己的需要创建新的
IntelliJ IDEA 的安装 、 配置 与使用
Template。
先定义一个模板的组:
选中自定义的模板组,点击”+”来定义模板。
1. Abbreviation:模板的缩略名称
2. Description:模板的描述
3. Template text:模板的代码片段
4. 应用范围。比如点击 Define。选择如下:
这里我们自定义了 CLASS 变量(使用时需要前后都加上$),但 Idea 并不识别,这就需要对自定义的变
量进行编辑,Edit Variables。
Name:我们的自定义变量名称;
Expression:变量替换表达式,这里我们使用了 Idea 模板支持的内置函数 className()表示类名,更多的
内置函数参考:Creating and Editing Template Variables
Default value:表达式计算失败时的默认值。
文件代码模板可以简单理解为:我们在项目中创建某些类型文件时,就已经在对应这些新文件中预设了代码内容。因为文字表达都带有点无力,所以下面用 Gif 动态图来演示。
${PACKAGE_NAME}、${NAME}
是 IntelliJ IDEA 预设的变量。Velocity Template Language
(VTL) 进行书写的。如图 2 上的 #if ... #end
和 #parse
都是 VTL 的语法。
Create Template
创建一个文件代码模板。Remove Template
删除一个文件代码模板,标注 1 所示的这些预设模板是不允许删除的,只能能删除预设之外的新增的。Copy Template
复制一个文件代码模板。Reset To Default
对被修改的预设文件代码模板,还原到默认状态。
因为变量的命名太明了不过了,所以这里不多讲解,直接贴出官网的英文解释:
- ${PACKAGE_NAME} - the name of the target package where the new class or interface will be created.
- 将在其中创建新类或接口的目标包的名称。
- ${PROJECT_NAME} - the name of the current project.
- 他是当前项目的名称。
- ${FILE_NAME} - the name of the PHP file that will be created.
- 将创建的PHP文件的名称。
- ${NAME} - the name of the new file which you specify in the New File dialog box during the file creation.
- 在文件创建过程中,在“新建文件”对话框中指定的新文件的名称。
- ${USER} - the login name of the current user.
- 当前用户的登录名。
- ${DATE} - the current system date.
- 当前系统日期。
- ${TIME} - the current system time.
- 当前系统时间。
- ${YEAR} - the current year.
- 当前年份。
- ${MONTH} - the current month.
- 当前月份。
- ${DAY} - the current day of the month.
- 当月的当前日期。
- ${HOUR} - the current hour.
- 当前小时。
- ${MINUTE} - the current minute.
- 当前分钟。
- ${PRODUCT_NAME} - the name of the IDE in which the file will be created.
- 将在其中创建文件的IDE的名称
- ${MONTH_NAME_SHORT} - the first 3 letters of the month name. Example: Jan, Feb, etc.
- 月份名称的前3个字母。示例:Jan, Feb, etc.
- ${MONTH_NAME_FULL} - full name of a month. Example: January, February, etc.
- 月份的全名。示例:January, February, etc.
表面上很多人认为配置 Database 就是为了有一个 GUI 管理数据库功能,但是
这并不是 IntelliJ IDEA 的 Database 最重要特性。数据库的 GUI 工具有很多,
IntelliJ IDEA 的 Database 也没有太明显的优势。IntelliJ IDEA 的 Database 最大特
性就是对于 Java Web 项目来讲,常使用的 ORM 框架,如 Hibernate、Mybatis
有很好的支持,比如配置好了 Database 之后,IntelliJ IDEA 会自动识别 domain
对象与数据表的关系,也可以通过 Database 的数据表直接生成 domain 对象等
等。
图标 1:同步当前的数据库连接。这个是最重要的操作。配置好连接以后或通过其他工具
操作数据库以后,需要及时同步。
图标 2:配置当前的连接。
图标 3:断开当前的连接。
图标 4:显示相应数据库对象的数据
图标 5:编辑修改当前数据库对象
Locale:输入语言类型:zh_CN
Other command line arguments:-encoding UTF-8 -charset UTF-8
点击ok即可下载;
IntelliJ IDEA 首次加载项目的时候,都会创建索引,而创建索引的时间跟项目的
文件多少成正比。在 IntelliJ IDEA 创建索引过程中即使你编辑了代码也是编译
不了、运行不起来的,所以还是安安静静等 IntelliJ IDEA 创建索引完成。
IntelliJ IDEA 的缓存和索引主要是用来加快文件查询,从而加快各种查找、代码
提示等操作的速度,所以 IntelliJ IDEA 的索引的重要性再强调一次也不为过。
但是,IntelliJ IDEA 的索引和缓存并不是一直会良好地支持 IntelliJ IDEA 的,
某些特殊条件下,IntelliJ IDEA 的缓存和索引文件也是会损坏的,比如:断电、
蓝屏引起的强制关机,当你重新打开 IntelliJ IDEA,很可能 IntelliJ IDEA 会报
各种莫名其妙错误,甚至项目打不开,IntelliJ IDEA 主题还原成默认状态。即使
没有断电、蓝屏,也会有莫名奇怪的问题的时候,也很有可能是 IntelliJ IDEA 缓
存和索引出现了问题,这种情况还不少。遇到此类问题也不用过多担心。我们可
以清理缓存和索引。如下:
一般建议点击 Invalidate and Restart,这样会比较干净。
上图警告:清除索引和缓存会使得 IntelliJ IDEA 的 Local History 丢失。所以如果你项目没
有加入到版本控制,而你又需要你项目文件的历史更改记录,那你最好备份下你的
LocalHistory 目 录 。 目 录 地 址 在 : C:\Users\ 当 前 登 录 的 系 统 用 户 名
\.IntelliJIdea14\system\LocalHistory 建议使用硬盘的全文搜索,这样效率更高。
通过上面方式清除缓存、索引本质也就是去删除 C 盘下的 system 目录下的对应的文件
而已,所以如果你不用上述方法也可以删除整个 system。当 IntelliJ IDEA 再次启动项目的
时候会重新创建新的 system 目录以及对应项目缓存和索引。