目录
1:IDEA的工程(Project)和模块(Module)机制
正所谓工欲善其事必先利其器,对开发人员而言若想提高编码效率,一款高效的开发工具是必不可少的,相信看到该博客的朋友们都已经对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介绍十分详细(从零基础开始),你们可以直接点击以上链接进行学习。至于为什么写这篇博文,我的目的是想把自己的个性化配置记录下来,当然如果与此同时能帮助到其他人,岂不美哉,本文将持续更新,由于本文内容较多建议读者从目录树上定位想要获取的配置信息
1:IDEA的工程(Project)和模块(Module)机制
- 在 IntelliJ IDEA 中 Project 是最顶级的级别,次级别是 Module。一个 Project 可以有多个 Module。目前主流的大型项目结构都是类似这种多 Module 结构,这类项目一般是这样划分的,比如:core Module、web Module、plugin Module、solr Module 等等,模块之间彼此可以相互依赖。通过这些 Module 的命名也可以看出,他们之间应该都是处于同一个项目业务情况下的模块,彼此之间是有不可分割的业务关系的。
- 所以我们现在总结:一个
Project
是由一个或多个Module
组成,模块之间尽量是处在同一个项目业务的的情况下,彼此之间互相依赖关联。这里用的是尽量
,因为 IntelliJ IDEA 的 Project 是一个没有具备任何编码设置、构建等开发功能的,主要起到一个项目定义、范围约束、规范等类型的效果,也许我们可以简单地理解为就是一个单纯的目录,只是这个目录命名上必须有其代表性的意义。 - 相比较于多 Module 项目,小项目就无需搞得这么复杂。只有一个 Module 的结构 IntelliJ IDEA 也是支持的,并且 IntelliJ IDEA 创建项目的时候,默认就是单 Module 的结构的。
2:idea的快捷键
前提
由于文化的不同,我们使用的电脑必备一个软件就是中文输入法,而目前大多数人都使用搜狗拼音输入法或是其他类似的。而这些输入法跟 IntelliJ IDEA 有一个万恶的冲突永恒不变:快捷键冲突。所以为了配合 IntelliJ IDEA,我们要去掉这些输入法下的所有快捷键。
- 如上图红色圈住内容所示,默认是
逗号
我改为了 ESC 键下的波浪号
,Ctrl + 逗号
这个快捷键适合做智能提示用,下面的快捷键列表会讲。
- 如上图红色圈住内容所示,这些快捷键很容易跟 IntelliJ IDEA 快捷键冲突,需要全部去掉。
- 如上图红色圈住内容所示,QQ 这些快捷键也很容易跟 IntelliJ IDEA 快捷键冲突,需要全部去掉,最多保持一个截图功能即可。
可能还有其他一些软件,比如网易云音乐、有道词典等等这些软件都可能存在快捷键冲突,所以为了 IntelliJ IDEA 这些软件的快捷键都是值得舍弃的,如果你在开发的时候。
- IntelliJ IDEA 官方出的学习辅助插件:IDE Features Trainer:https://plugins.jetbrains.com/plugin/8554?pr=idea
Ctrl
快捷键 | 介绍 |
---|---|
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 + ` | 显示版本控制常用操作菜单弹出层 (必备) |
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
快捷键 | 介绍 |
---|---|
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
快捷键 | 介绍 |
---|---|
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
快捷键 | 介绍 |
---|---|
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
快捷键 | 介绍 |
---|---|
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
快捷键 | 介绍 |
---|---|
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 弹出层 |
3:IDEA的索引
IntelliJ IDEA 的缓存和索引主要是用来加快文件查询,从而加快各种查找、代码提示等操作的速度,所以 IntelliJ IDEA 的索引的重要性我再唠叨一万遍都不为过。但是,IntelliJ IDEA 的索引和缓存并不是一直会良好地支持 IntelliJ IDEA 的,这某些特殊条件下,IntelliJ IDEA 的缓存和索引文件也是会损坏的,比如断电、蓝屏引起的强制关机,当你重新打开 IntelliJ IDEA,基本上百分八十的可能 IntelliJ IDEA 都会报各种莫名其妙错误,甚至项目打不开,IntelliJ IDEA 主题还原成默认状态。也有一些即使没有断电、蓝屏,也会有莫名奇怪的问题的时候,也很有可能是 IntelliJ IDEA 缓存和索引出问题,这种情况还不少。遇到此类问题也不用过多担心,下面就来讲解如何解决。
ps:
- 在三大主流的操作系统上配置文件夹都在当前用户的 Home 目录,Windows 上即
%userprofile%
,Linux 和 Mac 上即~
- 对于这个设置目录有一个特性,就是你删除掉整个目录之后,重新启动 IntelliJ IDEA 会再自动帮你再生成一个全新的默认配置,所以很多时候如果你把 IntelliJ IDEA 配置改坏了,没关系,删掉该目录,一切都会还原到默认,我是很建议新人可以多自己摸索 IntelliJ IDEA 的配置,多几次还原,有助于加深对 IntelliJ IDEA 的了解。
config
目录是 IntelliJ IDEA 个性化化配置目录,或者说是整个 IDE 设置目录。也是我个人认为最重要的目录,没有之一,如果你还记得安装篇的介绍的时候,安装新版本的 IntelliJ IDEA 会自动扫描硬盘上的旧配置目录,指的就是该目录。这个目录主要记录了:IDE 主要配置功能、自定义的代码模板、自定义的文件模板、自定义的快捷键、Project 的 tasks 记录等等个性化的设置。system
目录是 IntelliJ IDEA 系统文件目录,是 IntelliJ IDEA 与开发项目一个桥梁目录,里面主要有:缓存、索引、容器文件输出等等,虽然不是最重要目录,但是也是最不可或缺目录之一。
清除缓存和索引
- IntelliJ IDEA 已经自带提供清除缓存、索引的路口,如上图标注 1 所示。
- 一般建议点击
Invalidate and Restart
,这样会比较干净。- 但是有一个需要提醒的是,如上图红圈标注的地方:清除索引和缓存会使得 IntelliJ IDEA 的
Local History
丢失,所以如果你项目没有加入到版本控制,而你又需要你项目文件的历史更改记录,那你最好备份下你的LocalHistory
目录。目录地址在:C:\Users\当前登录的系统用户名\.IntelliJIdea14\system\LocalHistory
建议使用硬盘的全文搜索,这样效率更高。
通过上面方式清除缓存、索引本质也就是去删除 C 盘下的 system
目录下的对应的文件而已,所以如果你不用上述方法也可以删除整个 system
。当 IntelliJ IDEA 再次启动项目的时候会重新创建新的 system
目录以及对应项目缓存和索引。
如果你遇到了因为索引、缓存坏了以至于项目打不开,那也建议你可以直接删除 system
目录,一般这样都可以很好地解决你的问题。
其他
4:idea实时代码模板
在文章开头我们已经有提到 IntelliJ IDEA 实时代码模板是有变量参数设置的,其中 IntelliJ IDEA 自带了两个变量参数:
$END$
,表示最后都编辑完后光标所处的位置$SELECTION$
,表示设置环绕实时代码模板,环绕功能下面会模板专门进行介绍。- 除了上面两个变量参数外,其他一律都会自定义变量。
实时代码模板的设置
- 如上图标注 1 所示,除了 IntelliJ IDEA 预设的模板之外,我们还可以创建新组和新实时代码模板,其中组是用来包含实时代码模板的。
- 如上图标注 2 所示,
output
是组名,告诉开发者,这组里面实时代码模板都是用来做输出的。serr
表示实时代码模板输出System.err
的简称,所以这个不是一个完整的单词,不需要读懂,只需要记忆。- 如上图标注 3 所示,实时代码模板的内容,其中用到了预设的变量
$END$
。- 如上图标注 4 所示,可设置该实时代码模板的试用范围,比如图上的
serr
这是 Java 代码,所以试用范围我们就应该只是 Java 文件上或是 JSP 这类文件上,设置在 HTML 或是 CSS 文件上就完全没有多大意义了。- 如上图标注 5 所示,勾选了辅助的功能:
Reformat according to style
对生成的代码进行格式化。Shorten FQ names
表示缩写类的全称限定名。这个一般需要勾选,帮助你把模板里的全称限定名对应的类 import,然后使用的地方改成缩写。
- 如上图标注 1 所示,我们可以对实时代码模板进行组的转移。
变量参数和函数的介绍
如文章开头演示的 Gif 实时代码模板,其实时代码模板内容为:System.out.println("-----------YouMeek.com-----------$VAR1$值=" + $VAR1$ + "," + "当前类=$CLASS_NAME$.$METHOD_NAME$()");$END$
$VAR1$
、$CLASS_NAME$
、$METHOD_NAME$
都为自己定义的变量名。设置变量名只要用两个$
包住即可。- 每个变量在代码输出的时候都是一次光标位置,光标跳动顺序从左到右,每次跳动按
Enter
。
- 如上图标注红圈所示,可以对编辑代码内容的变量。
- 如上图标注 1 所示,演示中变量名
$CLASS_NAME$
、$METHOD_NAME$
会自动输出当前类名和方法名是因为使用对应的函数className()
和methodName()
。- 如上图标注 2 所示,如上面介绍的,每个变量都是一次光标位置,但是演示中变量名
$CLASS_NAME$
、$METHOD_NAME$
没有进入,是因为勾选了Skip if defined
。- 如上图标注 3 所示,可以改变变量光标跳转时的顺序。
- 内置函数介绍:https://www.jetbrains.com/idea/help/live-template-variables.html
- 对于官网这些函数这里就不在累赘,官网有详细的介绍,如果你还看不懂,可以看 IntelliJ IDEA 已经预设各个实时代码模板,基本上常用的函数都有被引用过,你可以通过学习这些预设的实时代码模板来揣测其函数的用法。
环绕功能介绍
- 上图 Gif 演示为最好的介绍
surround templates
。- 如上图 Gif 演示,环绕模板的前提是:选中要被环绕的内容。
- 在设置实时代码模板的时候,如果含有预设的变量
$SELECTION$
则该实时代码模板是环绕模板。- 该功能对于前端开发者来讲是非常方便的,默认 IntelliJ IDEA 已经自带了 HTML 标签的环绕功能。
5:idea文件模板
文件代码模板可以简单理解为:我们在项目中创建某些类型文件时,就已经在对应这些新文件中预设了代码内容。因为文字表达都带有点无力,所以下面用 Gif 动态图来演示。
- 如上图 Gif 所示,IntelliJ IDEA 默认新建类自带的类注释格式一般不够友好或是规范,所以我们一般需要自己根据公司编码规范进行设置。
- 如上图 Gif 所示,这是根据我自己的需求进行设置的类注释,这种注释方式会更友好。
根据演示我们应该已经很好地理解了文件代码模板是什么东西了。对此我们可以衍生出很多玩法,比如:我们的项目 Controller、Service、Dao 等常用新对象都是要各自继承某个类、实现某些接口或预设某些方法,也都可以通过这样的文件代码模板来实现。
文件代码模板的设置
- 如上图标注 1 所示,文件代码模板支持的类型基本常见的文件类型都涵盖了。
- 如上图标注 2 所示,这是 Java 文件模板新建的代码模板,其中
${PACKAGE_NAME}、${NAME}
是 IntelliJ IDEA 预设的变量。- 如上图标注 3 所示,IntelliJ IDEA 的文件代码模板是可以使用
Velocity Template Language
(VTL) 进行书写的。如图 2 上的#if ... #end
和#parse
都是 VTL 的语法。- 如上图标注 4 所示,介绍当前文件模板的一些信息,以及一些预设变量的作用介绍。
- 如上图标注 5 所示,这四个按钮是文件代码模板的主要操作按钮,四个操作分别是:
Create Template
创建一个文件代码模板。Remove Template
删除一个文件代码模板,标注 1 所示的这些预设模板是不允许删除的,只能能删除预设之外的新增的。Copy Template
复制一个文件代码模板。Reset To Default
对被修改的预设文件代码模板,还原到默认状态。
- 如上图标注 1 所示,该
File Header
文件就是前面 Java 文件代码模板中引入语句中#parse("File Header.java")
文件。
- 如上图标注箭头所示,
${DESCRIPTION}
是我们自己定义的变量,自定义变量格式有两种方式:$变量名 或 ${变量名}
。- 自定义的变量在创建对应的文件时候就必须输入内容,这个在本文最上面的 Gif 演示中已经有体现了。
- 如上图 Gif 所示,当我们需要用到一个固定值的自定义变量的时候并且该变量多个地方被引用,我们可以通过 VTL 语法的
#set( $变量名 = "变量值内容" );
来设置。
- 因为
Code
模块改动的人不多,所以放在最后。我们是无法新建、删除Code
里面的代码模板。- 如上图标注 1 所示,在我们通过快捷方式生成某个类的测试方法时候会自动调用此
Code
模板,所以我们可以解释该Code
功能主要用在 IntelliJ IDEA 自动帮我们生成某些代码的时候引用的模板。
文件代码模板预设的变量
因为变量的命名太明了不过了,所以这里不多讲解,直接贴出官网的英文解释:
- ${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.