1、idea快捷键
IDEA 介绍
IDEA 全称IntelliJ IDEA(/inteli’dʒei ai’diə/),是捷克*的JetBrains软件公司基于Java语言开发的一款Java IDE,
提供社区版本以及商业版本。通过插件扩展,可提供对其它编程语言的支持。
IntelliJ IDEA是一个纯Java Swing应用程序,所有自定义组件(如编辑器选项卡)都是手动创建的,没有使用第三方
库。
IDEA 在业界被公认为是最好的Java IDE之一,尤其在智能代码助手、代码自动提示、重构、Java EE支持、各类版本
工具(git、svn等)、JUnit、CVS整合、代码分析、创新的GUI设计等方面可以说是超常的。
最初版于2001年1月推出,2014年12月Google宣布其旗下的[Android Studio]基于IDEA的社区版本发展而成,用以
取代原来的[Eclipse ADT],这应该是IDEA 发展的一剂猛药。
- 为什么需要了解IDEA:
从权威站点(http://pypl.github.io/IDE.html、http://index.baidu.com)发布的最新数据来看,IntelliJ IDEA的热度
持续升高。
pypl排名的原始数据来源于google趋势(https://trends.google.com/),对比Visual Studia的热度生成
Eclipse出身名门,但是IDEA的师兄弟及徒子徒孙在前十的IDE中占据三席(IDEA、pyCharm、Android Studio<基于
IDEA 社区版>),PhpStorm、Web Storm也出身于JetBrains,该公司旗下还有很多其他工具。包括安卓一级开发语
言Kotlin也由这家公司赞助开发。 - 名称由来
名称由来,目前没有统一的说法:
Intelli ===> Intelligent(智能的)
J ===> Java
Idea ===> IDE that is Advanced or Idea just means idea( I have a good idea …like this ) …
//The Idea has Double meaning
IDEA 下载
访问IDEA官方网站的下载页面(https://www.jetbrains.com/idea/download),下载最新版的IDEA.
一个是旗舰版,一个是社区版,社区版开源免费。下载旗舰版zip(2018.3.2),可以试用30天。
历史版本下载:https://www.jetbrains.com/idea/download/previous.html
IDEA 安装
ZIP包解压即可试用,自带了jre。 bin目录下有启动程序。.exe的安装程序有一个安装向导,可以进行一些设置,但
是部分设置要写注册表,没有必要,所有的设置都可以在后期按需配置。
配置项保存路径
配置信息的保存目录在bin目录下的idea.properties文件中配置,默认在用户目录中,建议修改到IDEA同级目录,
system最好放入固态硬盘。相关目录描述如下:
目录 描述
config configuration (idea.config.path)
config\plugins plugins (idea.plugins.path)
system caches, local history, etc (idea.system.path)
system\log logs and thread dumps (idea.log.path)
bin/idea.properties:
可以使用…表示目录,不能设置到idea的安装目录下
参考资料:
https://www.jetbrains.com/help/idea/tuning-the-ide.html#system-directory
欢迎界面 - 配置导入窗口
可以将旧版本或者其它安装实例的配置及插件直接导入到新版本中 - UI样式选择
idea.config.path={idea.home.path}/…/.IntelliJIdea2018.3.2/system - **窗口
- 欢迎界面
关闭IDEA时关闭唯一打开的项目实例,或者第一次运行IDEA时,将显示欢迎界面,关闭打开的项目可以再次出现欢
迎界面
界面介绍
界面布局 - 菜单栏
菜单栏包含大部分可用命令,如用于打开、创建项目,重构代码,运行和调试应用程序、版本控制等菜单项。 - 工具栏
主工具栏包含菜单中的经常使用的基本命令。默认情况下,主工具栏是隐藏的。
显示/隐藏:View | Toolbar - 导航栏
导航栏是 “项目” 工具窗口的快速替代方式。 可以进行项目内导航、打开文件进行编辑等
显示/隐藏: View | Navigation Bar - 工具窗口按钮栏
工具窗口按钮栏,也叫工具窗口栏,包含用于显示或隐藏工具窗口的按钮。默认有三个按钮栏,两个在主窗口的两
侧,一个在底部。
显示/隐藏: 单击窗口左下角的“工作窗口栏”操作按钮 或者 View | Tool Buttons。 5. 工具窗口
IDEA 工具窗口是附加在工作区的底部和两侧的工具窗口。提供对各种特定功能(项目管理,搜索,运行和调试,与
版本控制系统集成等)的使用。 某些工具窗口是始终可用的,部分工具窗口只有在启用了相应的插件或 facets 时才
可用。还有一些工具窗只有在执行某些操作时才出现。
所有可用的工具窗口通过 View| Tool Windows查看。
窗口视图模式:
Pinned Mode(固定模式):工具窗口为非**窗口时是否隐藏
Docked Mode(停靠模式):停靠模式的工具窗口的所有边都附加到周围元素,取消停靠模式则工具窗口释放
主窗口空间,浮动到上层
Split Mode( 分隔模式): 分隔模式设置是否可以和其他工具窗口一起停靠在同一工具窗口栏上。
图标 描述
单击可以显示/隐藏工具窗口栏,鼠标以上不动,出现工具窗口打开
按钮
文字信息 显示当前在主菜单,上下文菜单或工具栏上选择的命令的说明。
如果在编辑器中选中 了内容,则显示选择了多少个字符,包含多少
个换行符;编辑器中的当前插入位置(行和列)
切换行分割符
当前文件的字符编码
当前文件的只读或可写属性切换
Floating Mode(浮动模式):浮动模式,可以四处拖动,非浮动模式工具窗口的一侧连接到其中一个工具窗口
条
Windowed Mode(窗口模式):以独立窗口显示,可以四处拖动,有窗口标题栏。
双击标题栏可以放大工具窗口
显示/隐藏:
可以通过鼠标放置在窗口左下角的
按钮打开工具窗口,也可以通过位于窗口两侧和底部的工具窗口按钮栏中的工具窗口按钮打开工具窗口。部分工具窗
口在执行特定操作时自动出现。 - 编辑器
IDEA编辑器是用于创建和修改源代码的强大工具。与任何其他 IDE 编辑器一样,它支持基本功能,如书签, 断点,
语法高亮, 代码完成,缩放, 折叠代码块等。但是,还有很多高级功能如:宏,突出显示TODO注释, 代码分析,
意向操作, 智能和快速导航等。 - 状态栏
状态栏指示当前的IDE状态,并允许执行某些操作。常见状态栏的图标如下:
下载和安装插件时,状态栏中会显示更多图标。
https://www.jetbrains.com/help/idea/status-bar.html
命令 快捷键
快速文档 Ctrl+Q
快速定义 Ctrl+Shift+I
用法 Ctrl+Alt+F7
Show implementation Ctrl+Alt+B - 上下文菜单
在对应位置右键单击可用,包含适用于当前上下文的命令。 - 弹出菜单
这些菜单可以使用 Alt + Insert或者对应菜单命令弹出,包含适用于当前上下文的命令。 - 快速弹出菜单
快速弹出窗口有助于检查与插入符号相关的其他信息,如:
布局配置
Window|Store Current Layout as Default:当前布局保存为默认布局,在工程配置文件夹上
Window|Restore Default Layout:恢复默认布局
视图模式
全屏模式(Full Screen):从视图中删除所有菜单(顶部隐藏)以及窗口标题栏。当将鼠标指针悬停在屏幕顶
部时,主菜单也可用。
演示模式( Enter Presentation Mode):类似于全屏模式,但它旨在进行与 IDEA 编码相关的演示。在这种模
式下,IDEA 增加字体大小,并隐藏除编辑器以外的所有内容。如果需要,还可以使用视图中的相应项目在该视
图中显示 View | Tool Windows 菜单。
无干扰模式(Enter Distraction-Free Mode):显示没有工具栏,没有工具窗口,没有编辑器选项卡,代码是
中心对齐的,等等。
模式可以同时叠加打开,Ctrl+,选择view mode,全屏模式需要通过 view菜单切换 Ctrl+
打开切换菜单,切换颜色方案、代码样式、快捷键映射、视图模式
Ctrl+Tab
切换工具窗口和打开的编辑器窗口,Backspace可以关闭编辑器
IDEA 与 Eclipse
代码演示
创建Application工程
对比总结
Eclipse: 1:由IBM公司开发并且贡献给开源社区的免费IDE,现在由Eclipse基金会(Eclipse Foundation)管理。 IBM、
Oracle、Red Hat、Google、Pivotal等都在Eclipse的发展过程中出人出力 2:插件众多,用户群体庞大 3:由于
Eclipse的开放性,平台、插件的稳定性和文档较差,UI一致性相对较差
IDEA: 1:IDEA 定位为一个商业软件,由一家商业公司开发维护。代码部分开源。
2:由于IDEA的插件需要官方审核,所以插件数量相对较少,但是够用。用户群体目前应该是没有超过Eclipse的 3:也是基于平台+插件的模式,但是多数常用插件来源于同一家公司,在插件集成和文档方面有更好的支撑。
4:IDEA懂得上下文。IDEA会分析项目所有的内容,针对整个项目建立索引。构建索引会导致平台启动较慢,内存占
用较多
参考资料:
https://www.slant.co/versus/1957/1958/~eclipse_vs_intellij-idea
https://blog.jetbrains.com/idea/2016/03/enjoying-java-and-being-more-productive-with-intellij-idea/
https://www.jetbrains.com/idea/features/
学习插件
插件安装方式
Key-Promoter-X(快捷键提示)
IntelliJ IDEA的快捷键提示插件,会统计鼠标点击某个功能的次数,提示应该用什么快捷键,帮助记忆快捷键,等熟
悉了之后可以关闭掉这个插件。 - 插件配置:
- 插件效果
目录 描述
config configuration (idea.config.path)
config\plugins plugins (idea.plugins.path)
system caches, local history, etc (idea.system.path)
system\log logs and thread dumps (idea.log.path)
IntelliJ IDEA Help(离线帮助文档)
安装后,通过help|help打开帮助文档。或者鼠标放在需要查看帮助文档的窗口内,然后按F1,会打开对应的帮助文
档
常用配置
IDEA的配置分项目配置和全局配置,项目配置只影响当前项目,全局配置影响所有项目。当同一个配置项在项目级
和IDE级都设置后,以项目级设置为主。
要恢复IDEA默认设置,可以在IDE未运行时删除配置目录(idea.config.path)。
项目配置
项目配置仅应用于当前项目。这些配置保存在项目根目录下的.idea目录中.提交项目时,该目录下的文件除部分外应
该提交到版本库,具体参考后继章节。
File | Settings 或者 Ctrl+Alt+S, 或者 单击工具栏的
全局配置
全局配置项较少,保存配置的目录在bin目录下的idea.properties文件中配置,默认在用户目录中。相关目录描述如
下:
File | Other Settings | Settings for New Projects
配置JDK
配置信息保存在全局配置文件config\options\jdk.table.xml
配置Tomcat
配置了Tomcat后,Servlet和JSP的API会自动创建为Server Lib,可以在Web模块中添加依赖
增加内存
文件编码
快捷键配置
快捷键配置文件:config/keymaps
默认快捷键文档:
https://resources.jetbrains.com/storage/products/intellij-idea/docs/IntelliJIDEA_ReferenceCard.pdf
自动编译
自动编译Java文件
显示行号
显示装订线区域的行号
字体设置
配置的地方各个版本不太一致,便捷的方式是搜索配置关键字
- 窗口字号
设置窗口字体和字号,如:菜单、工具栏字体 - 编辑器字号
设置编辑器里代码的字体和字号 - 启用鼠标滚轮改变编辑器字号
通过Ctrl+鼠标滚轮修改编辑器字体
tab键改为空格
一些代码规范会要求编程时使用4个空格缩进而不是tab,好处是在不同编辑器下4个空格的宽度看起来是一致的,而
tab则长短不一。tab的好处是输入更方便。进行简单的设置以后,在IDEA中按tab就可以输入4个空格,结合了2者的
优点.
如果需要用到多种编程语言,需要分别设置。可以点击右侧“set from”,复制其他文件类型的设置
设置了tab键和缩进对应字符后,可以在文件中或者文件夹上使用Ctrl+ALT+L格式化代码。
隐藏.idea .iml
隐藏.idea、.iml文件
创建及配置工程
https://www.jetbrains.com/help/idea/creating-and-managing-projects.html
基本概念
工程
IDEA中的工程类似于Eclipse的工作空间,它是一个大的代码管理单元,但是真正的代码是写在模块中的。IDEA不能
在一个窗口中同时打开多个工程,但是可以打开多个窗口(一个窗口一个工程),多个窗口还是一个进程。
模块
相当于Eclipse的工程,IDEA的子管理单元
创建工程
创建Java工程 - 选择项目类型
- 选择项目使用的JDK,如果配置过JDK则可以直接选择,否则单击New按钮来配置JDK
创建Web工程
创建Java项目,选择Lib,创建的项目不添加ServletAPI的jar包,也不生成运行/调试配置 - 选择项目类型
- 选择项目使用的JDK,如果配置过全局JDK则可以直接选择,否则单击New按钮来配置JDK
创建JavaEE项目,,创建的项目添加ServletAPI的jar包,自动生成运行/调试配置
创建Maven工程
默认使用的是IDEA安装包中带的Maven,如果要使用自安装的Maven,可以参考前面章节
工程目录
项目目录下会自动生成.iml文件和.idea目录
.iml ( IntelliJ IDEA Module)
IML是由IDEA创建的模块文件,每个模块都有一个,存储有关开发模块的信息, 保存模块路径,依赖项和其他设
置。
.idea/modules.xml
.idea下保存的是项目级的配置
其中: modules.xml保存项目模块目录
工程结构配置
工程结构配置,分全局和当前项目结构配置
全局配置
全局SDK和lib的配置,项目默认SDK、语言级别、lib的配置,
File | Other Settings | Structure for New Projects.
项目配置
File | Project Structure. 或者 Ctrl+Shift+Alt+S, 或者 单击工具栏的
.
Project(工程)
配置有关工程名称、工程JDK、工程语言级别和编译级别的信息。
Modules(模块)
可以新建模块,设置模块各目录的类型、路径、依赖项 - 目录类型
设置源文件夹的目录类型,便于IDEA对目录做出对应的处理,如:Sources表示这个文件夹放的是源码,IDEA
可以去编辑 - 路径
- 设置模块依赖项
此处设置的是模块的lib,还可以在工程和全局范围内添加lib,在此处引用.
依赖范围:
Compile:
编译和运行阶段,测试和代码运行
Test:
编译和运行测试时
Runtime:
运行测试和代码
Provided:
只在编译阶段
上下文菜单:
Analyze This Dependency:文件依赖项被使用情况
A. 通过Maven添加依赖项
Libraries(Lib库)
从本地硬盘或者Maven仓库添加Lib库,可以在设置中修改Maven库的地址。
选择OK将添加到模块依赖,Cancel只是创建项目范围的Lib库
org.apache.commons:commons-lang3:3.8
org.apache.logging.log4j:log4j-api:2.11.1
commons-io:commons-io:2.6
Facets(特征)
Facets表述了在Module中使用的各种各样的框架、技术和语言。这些Facets让Intellij IDEA知道怎么对待module内
容,并保证与相应的框架和语言保持一致。
使用Facets能让IDEA为模块做出对应的处理,如:添加web特征,IDEA会创建相关文件;添加框架,IDEA下载并配
置framework所必须的组件,会自动生成各种各样的描述符,并存储在适当的位置,等等。
大多数Facets可以无冲突得添加到Module中。也有一些Facets是继承其他Facets的,这些Facets的添加就必须先添
加他们的父Facets,这些Facets也要依赖Intellij IDEA的相关插件是否开启.
web特征 - 添加特征
- 特征关联模块
- 特征配置
- 特征产生的影响
创建了web目录和对应文件
spring 特征
添加特征后,如果项目lib里没有spring lib,则可以下载,下载后自动添加依赖,还可以添加配置文件等
单击ok后,IDEA将会从File | Settings | Build, Execution, Deployment | Remote Jar Repositories设置的仓库下载
jar
添加spring上下文:
添加后可以通过Spring 工具窗口,查看bean的定义
Artifacts(项目打包)
设置项目或者模块的构建配置,常用的如打包jar文件、war文件等,只有在此处设置了Artifact才能使用菜单项
Build|Build Artifact进行工程打包 - jar文件
- war 文件
工程管理
打开工程
File|Open Project
工程打开或者新建时,可以选择在当前窗口或者新窗口打开工程
关闭工程
File|Close Project
如果需要删除工程,先关闭,然后直接删除目录
浏览工程(工程工具窗口)
https://www.jetbrains.com/help/idea/project-tool-window.html
通过工程工具窗口可以浏览及管理工程文件
切换工程视图:
Project: 项目视图,将显示所有项目目录及其依赖项(SDK和库)
Packages: 包视图,重点显示项目的包结构
Scopes views (Project Files, Problems等):显示的内容仅限于相应的预定义或用户定义的内容
常用:
Project: 都显示
Project Files:只显示工程文件
快速搜索:
快速搜索在所有树视图中都可用:只要开始输入,就可以快速找到所需的项目。如:在项目工具窗口直接输入main
代码编辑
新建文件、目录等
File|New --或者-- 在工程工具窗口中Alt+Insert --或者-- 工程工具窗口上下文菜单 --或者-- 编辑器中Ctrl+Alt+Insert
IDEA使用Velocity为所有支持的文件类型提供预定义模板,用户可以修改新建、修改、复制模板。
编辑器设置:
https://www.jetbrains.com/help/idea/settings-editor-appearance.html
浏览代码
https://medium.com/@andrey_cheptsov/top-20-navigation-features-in-intellij-idea-ed8c17075880
在打开的文件和工具窗口之间导航
继续按Ctrl键以保持切换器弹出窗口打开。 使用Tab键在元素之间移动。 使用Backspace从列表中删除所选文件并在
编辑器中将其关闭。类似于windows的alt+tab
Ctrl+Tab
最近编辑的文件列表
Ctrl+E 显示最近编辑的文件列表
在IDE组件之间导航
已在其中一个工具窗口中选择了一个文件或成员,并希望在另一个IDE组件中快速找到它。Alt+F1
在方法和标签之间导航
Alt+Up/ Alt+Down
在资源管理器中打开路径
按住Ctrl,然后单击编辑器中的tab
导航到代码块
Ctrl+[或 Ctrl+]
导航到类型声明或符号声明
Ctrl+B 导航到符号声明
Ctrl+Shift+B 导航到符号类型声明
浏览方法层次结构
光标放在子类或者子类重写、实现方法上,然后Ctrl+U,跳转到父类方法中
Ctrl+Alt+B从父类或接口方法跳转到实现方法。
使用结构视图
通过结构工具窗口或者文件结构弹出窗口都可以快速浏览文件的结构,但是结构工具窗口除了浏览外,通过上下文菜
单还可以执行部分操作,如重构等,而文件结构弹出窗口只是用来浏览文件结构。
还有一个可能会同时用到的层次结构工具窗口,可以查看类的继承结构,通过Ctrl+H或者Alt+8打开
继承结构
https://www.jetbrains.com/help/idea/viewing-hierarchies.html
Ctrl+H
文件结构弹出窗口
http://127.0.0.1:63342/help/structure-tool-window-file-structure-popup.html#0fc1707e
Ctrl+F12
结构工具窗口
Alt+7
编辑代码
编辑器基础
界面布局
快捷键 描述
Ctrl+Shift+F12 最大化编辑器,隐藏所有打开的工具窗口
编辑器tab栏的上下文菜单,Close All 关闭所有标签
Alt+单击**编辑器的叉号 关闭除当前编辑器外的其它编辑器
Ctrl+F4 关闭当前编辑器
Alt+Right / Alt+Left 切换编辑器
Shift+F4 分离标签为独立窗口
Shift+ 鼠标单击|单击鼠标滚轮 不点击叉号,只要鼠标在选项卡上就可以关闭
快捷键 描述
Ctrl+M 定位到光标
Ctrl+Shift+Backspace 导航到上次编辑的位置
Ctrl+G 跳转到对应行
镜头模式(Lens Mode)
将鼠标指针悬停在滚动栏的空白处,显示带有警告/错误消息的源代码片段。
通过鼠标滚轮的滚动切换显示的代码
管理编辑器
基本编辑
光标定位
编辑代码
代码修改后会自动保存,无法彻底关闭自动保存
http://127.0.0.1:63342/help/system-settings.html
快捷键 鼠标 描述
Ctrl+W
对于纯文本,选择从整个单词开始,然后扩展到句子,段落等。对
于代码行,选择的工作方式相同。它从较小的代码部分开始,然后
将选择增加到更大的代码构造
Ctrl+Shift+W 收缩代码选择。
Alt+J 初始选择代码,再次按相同的键,选择匹配的内容
Ctrl+Shift+Alt+J 选择所有匹配项
Shift+Enter 在当前之后添加一行。
Ctrl+D 复制并且黏贴光标所在行。不需要选中行
Ctrl+Y 删除一行。
Ctrl+Shift+U 大小写转换
Ctrl+Shift+/
Ctrl+/ 多行、单行注释
Shift+Alt
然后单击插入符
号位置的鼠标左
键
添加或删除多个插入符号
Shift+Alt+Insert
按快捷键后放开
快捷键,向上或
者向下拖动鼠标
启用列选择模式以在列中添加多个插入符号
Ctrl+ +|- 折叠、展开方法
Ctrl+Alt+L 格式化代码,可用在文件,目录,模块上
代码生成
生成常用方法
类的空白处 Alt+Inert,选择要生成的方法
实现抽象方法
Ctrl+i
重写父类方法
Ctrl+O
实时模板
文档:https://www.jetbrains.com/help/idea/using-live-templates.html
通过使用实时模板,可以将常用的代码结构插入到源码中。例如,循环,条件,各种声明或打印语句。要使用实时模
板,先键入相应的模板缩写,然后按Tab。继续按下Tab从模板中的一个变量跳转到下一个变量。按Shift+Tab移动到
上一个变量。
使用实时模板
IDEA 中实时模板包含了三种类型:简单模板、参数化模板以及环绕模板。Ctrl+j显示所有实时模板,tab展开模板,
tab切换变量 - 简单模板
简单模板仅包含固定的纯文本。展开简单模板时,文本会自动插入到源代码中,替换缩写。常用简单模板:
模板 代码
psfs public static final String
psvm public static void main(String[] args){}
sout System.out.println();
soutm 添加当前的类和方法名称
soutp 添加方法参数名称和值
soutv 添加最后一个变量值
模板 代码
fori for (int i = 0; i < ; i++) {}
ifn if (var == null) {}
ifn if (var == null) {} - 参数化模板
参数化模板包含允许用户输入的变量。展开参数化模板时,变量将由用户手动输入的字段替换,或由IDEA自动替
换。 - 环绕模板
环绕模板使用用户指定的文本包装所选代码的块。选择代码块,然后 Ctrl+Alt+J。
实例模板配置:
创建实时模板
自定义实时模板,模板变量参考https://www.jetbrains.com/help/idea/template-variables.html
private static final Logger logger= Logger.getLogger(类名.class);
代码补全
各种上下文感知代码完成技术,可以加快编码过程。也叫即刻完成、代码完成等
省电模式下,代码补全失效。代码完成的配置如下图所示:
代码完成的配置:https://www.jetbrains.com/help/idea/settings-code-completion.html
代码完成:https://www.jetbrains.com/help/idea/auto-completing-code.html
基本补全
基本代码完成可辅助完成可见范围内的类,方法,字段及关键字的名称。当键入字符后,IDEA默认会显示补全列
表,也可以通过Ctrl+Space或 Code -> Completion -> Basic 弹出补全建议列表。
补全建议列表根据输入的字符、上下文、API使用习惯来生成。
使用基本完成补全: - 输入字符
- Ctrl+Space或 Code -> Completion -> Basic
- 如果建议列表中没有包含需要的内容,可以再此按Ctrl+Space,通过两次快捷键可以陆续扩大搜索范围
智能补全
智能代码完成建议列表的过滤,仅显示适用于当前上下文的列表项。
在可以确定适当类型的情况下,智能完成非常有用:
在赋值语句的右侧部分
在变量初始化器中
在return语句中
在方法调用的参数列表中
在new关键字之后
在链式表达式中
使用智能补全: - 输入字符
- Ctrl+Shift+Space 或者 Code | Completion | SmartType
- 如果建议列表中没有包含需要的内容,可以再此按Ctrl+Shift+Space,通过两次快捷键可以陆续扩大搜索范围
语句补全
可以完成正在输入的语句的剩余部分,自动增加大括号小括号和必要的语法部分。 - 完成方法声明
输入方法签名后,直接Ctrl+Shift+Enter,可以补全{} - 语句补全
输入语句关键字,直接Ctrl+Shift+Enter,可以补全(){}
单词补全
单词补全不需要太多关于上下文的信息。 它会扫描文件中的所有单词并立即选择第一个匹配项。如:光标定位到等
号后边,按alt+/,会不断切换文件中的单词
后缀补全
public static String toUpper() while String str = ;
后缀代码补全让可以根据在点后面键入的后缀,表达式类型及其上下文,将已经键入的表达式转换为另一种表达式。
这种转换是通过扩展特定于后缀的预定义模板来执行的。可以定义自己的后缀。
后缀补全如下图所示:
常见的后缀:
100.fori //生成for循环 i.sout //生成System.out.println(i); name.field //private String name;
代码块环绕
https://www.jetbrains.com/help/idea/surrounding-blocks-of-code-with-language-constructs.html
选择代码块,ctrl+alt+t
代码检查
IDEA具有强大,快速和灵活的静态代码分析功能。它会在编译之前检测语法和运行时错误,并且提供修复建议。
IDEA 代码检查不仅检测编译错误,而且还可以发现各种不合理的代码,如:未使用的方法、未使用的变量、空catch
块等。
IDEA 代码分析可以灵活配置,包括启用/禁用某个检查项,自定义检查集合,自定义检查规则等。
可以通过以下几种方法进行静态检查:
默认情况下,IDEA 分析所有打开的文件,并在编辑器中突出显示所有检测到的代码问题。在编辑器的右侧,您
可以看到整个文件(右上角的图标)的分析状态。当检测到错误时,此图标为: ;在警告的情况下,图标
为: ;如果一切正确,图标就是 。
或者,可以在指定作用域的批量模式下运行代码分析(Analyze|Inspect Code)。
如有必要,可以在特定范围内应用单个代码检查。
建议:在默认配置基础上使用,就好,如果公司有代码规范,则可以将规范定义为检查项,也可通过代码检查学历代
码编写规范和技巧。
外部注解
https://www.jetbrains.com/help/idea/external-annotations.html
官方文档:https://www.jetbrains.com/help/idea/nullable-and-notnull-annotations.html
注解是添加到Java代码中的一类元素,可以在源码、class、运行时存在,通过注解可以提供代码的相关信息,IDEA
提供一组可以单独使用的注解,用于定义代码的一些规则。代码检查会按照注解的规则来检查。
如:鼠标移动到print(messag)将提示参数可能为空,而print方法不接受空参数。
注意用的是org.jetbrains.annotations.NotNull
代码检查的注解在代码编译后应该删除,最好实在源码就没有加入,或者编译好的代码在被其他项目作为依赖库使用
时,可能失去源码级的注解。所以IDEA可以把一些注解放到外部xml文件中
启用外部注解
JDK的jar文件的外部注解:
注解转为外部注解
光标定位到注解,然后alt+enter,选择“Annotate externally”
删除外部注解
光标定位到被注解的参数,然后alt+enter,选择“Deannotate ‘…’”
隐藏外部注解
注解放到外部文件后,编辑器还会在对应位置显示注解(源码中不存在了),同时在装订线区域显示@符号,通过以
下设置可以隐藏外部注解。但是@符还存在
查找代码
在源码中查找,可以在当前文件中查找内容(支持正则),项目文件中查找内容(支持正则),在当前文件中查找并
且替换内容(支持正则),项目文件中查找并且替换内容(支持正则),也可以查找文件名、类名、标识符、动作
等。
在当前文件中搜索内容
Ctrl+F 打开, Esc取消
查找工具窗口:
http://127.0.0.1:63342/help/find-tool-window.html
在指定范围内搜索内容
Ctrl+Shift+F
在当前文件中替换内容
在指定范围内替换内容
按照模板进行结构性搜索
安装模板进行结构性的搜索,如搜索所有的类,或者所有的字段
Ctrl+R Ctrl+Shift+R Esc关闭 Edit | Find | Search Structurally
示例:
字段搜索
按照名称搜索
按照名称搜索类、文件、标识符、操作(build)、设置。
示例:
show method separators
build
main
在窗口任何位置按两次shift键。
Ctrl+N:查找类名,包括非工程类
Ctrl+Shitf+N:查找文件名
查看代码参考信息
代码定义
Ctrl+Shift+I (or click View | Quick Definition)
参数信息
键入括号或者从提示列表中选择后自动弹出参数信息
Ctrl+P
快速文档
两次Ctrl+Q,文档信息来源于源码的doc注释或者在配置jdk的地方制定的文档路径
代码重构
不创建新功能的情况下改进源代码结构的过程
修改签名 - 选择要更改签名的方法或类。
- 在上下文菜单中,选择Refactor | Change Signature,或者通过快捷键Ctrl+F6)。
- 在打开的对话框中,指定相应的选项,然后单击“ 重构”。如果要查看更改预览,单击“ 预览”。
注意:类签名可以修改类的泛型,不可以修改类名
修改静态方法为实例方法
封装字段
修改public字段为private,IDEA会生成get、set方法,同时更新使用字段的代码
提取重构
快捷键 描述
Ctrl+Alt+C 选中常量或者变量名称,然后Ctrl+Alt+C,可以配合Refactor–>Find and
Replace Code Duplicates执行所有常量的替换
Ctrl+Alt+F 按Ctrl+Alt+F两次打开“ 提取字段”对话框,可以在其中指定其他详细信
息,
Refactor–>Extract 提取为接口
Ctrl+Alt+M 或者 Refactor–>
Extract --> Method 提取为方法
Refactor -->Extract -->
Superclass. 提取为父类
Ctrl+Alt+V 或者 Refactor -->
Extract -->Extract Variable. 提取为变量
Ctrl+Alt+P 或者 Refactor -->
Extract --> Parameter
提取为参数
Refactor --> Extract --> Delegate 字段,方法和参数提取到新类中,主要用于拆分大的类文件
Refactor -->Extract --> Method
Object
Refactor -->Extract -->
Parameter Object
查找和替换重复代码
替换代码中与常量值或者方法体一致的代码为常量或者方法。
先创建方法或常量,光标定位到方法或常量上,通过上下文菜单或者Refactor | Find and Replace Code Duplicates
执行替换
泛型重构
补全代码中的泛型声明,在“ 项目”或“ 结构”视图中选择代码转换级别(可以是方法,类,包或目录),或将光标放在
编辑器中的类或方法名称上。如果要将泛型应用于单个代码片段,请在编辑器中选择一个
Refactor | Generify
反转布尔值
选中变量或者方法,然后
迁移
从旧版本的jdk迁移到新版本的jdk
移动并复制重构
F5 复制类
F6 移动方法或成员到其它类
移动成员到父类或者子类
移动成员变量或者方法到父类或者子类
修改名称
在文件名或者标识符上按Shift+F6,按一次可以是建议的名称,按两次可以有对话框
安全删除
从源代码中删除文件和标识符,需要光标放在文件或者标识符上,IDEA会搜索被删除项被使用的地方
修改类型
Refactor | Invert Boolean. Refactor | Migrate Refactor | Pull Members Up or Refactor | Push Members Down. Shift+F6 Alt+Delete
自动导入
自动导入配置
1.建议:1、2、3、4全部选中
使用建议 - 文件夹优化导入
Ctrl+Shift+F6 或者 主菜单select Refactor |Type Migration.
在项目工具窗口中的对应目录中右键单击,选中Optimize Imports或者Ctrl+Alt+O,会将目录下的所有文件的
无效导入语句删除掉 - 文件优化导入
在文件中按下Ctrl+Alt+O,删除无效导入语句
在class前一行,按Alt+Enter,会添加导入语句,如果符合的类有多个,则弹出选择框 - 提交前自动优化导入
在提交窗口选择优化导入
意向操作
在编辑器中工作时,IDEA会分析您的代码,搜索优化代码的方法,并检测潜在和实际问题。
一旦IDEA找到改变代码的方法,就会在光标旁边的显示一个黄色的灯泡图标 。通过单击此图标,可以查看此代
码单元可用的意向操作。意向操作涵盖从警告到优化建议的各种情况。您可以查看完整的意图列表并在设置中禁用它
们。
带有感叹号的红色灯泡
表示IDEA已检测到问题,并提示选择关联的修复程序 - 快速修复。 - 单击灯泡图标(或按Alt+Enter)以打开建议列表。
- 从列表中选择一个操作,然后按Enter
- 也可以通过建议项右侧的箭头禁用建议项
语言注入
IDEA可以提示在字符串内的语言代码,如:sql。
比较文件及文件夹
提供文件夹及文件的的历史比对,和本地历史比,和版本库比
工具窗口
Favorites(收藏夹)
展示收藏的项目项(文件,文件夹,包,实例和类成员等),书签、断点
Shift+Alt+F 收藏
Alt+2 收藏工具窗口
可以新建、重命名收藏列表
TODO(待完成)
IntelliJ IDEA允许添加特殊类型的注释,这些注释在编辑器中突出显示,而且会加入到索引中并且在TODO工具窗口中
列出。
TODO和FIXME都可以创建单行或者多行TODO项,TODO和FIXME不区分大小写,TODO和FIXME后要后空格,要创
建多行TODO项,请缩进初始行后面的注释行。如果没有缩进,行将被视为常规注释行。
//TODO,ODO就是英文to do 的意思。
用来表示这个地方还有一些事情要做,一些代码要写。程序尚有不足的地方不完整或业务逻辑没完成。
由于用了这个注释后,TODO是加粗的,在代码中很明显,所以可以作为程序员编写代码时给自己留个备忘。
临时代码和文件
有时可能需要临时记录一些信息或在项目之外编写一些代码(如:验证某个API,或者某个小的思路)。IDEA通过临
时文件和暂存缓冲区来支持,从而免于切换到其他应用程序或项目。 - Scratch文件:Scratch文件功能齐全,可运行、可调试,支持语法突出显示,代码完成以及相应文件类型的所有
其他功能。 - Scratch缓冲区是简单的文本文件,没有任何编码辅助功能。最多可以创建五个具有默认名称的暂存缓冲区,这
些缓冲区通过清除内容进行轮换和重用。
临时文件和暂存缓冲区文件存储在IDEA目录中,可以从其他项目访问和打开
创建临时文件
ctrl+alt+insert
创建Java临时文件时,IntelliJ IDEA会自动添加类声明和 main() 方法。
在项目工具窗口选择临时文件,ctrl+q,可以查看临时文件的信息,如:保存路径、大小、修改时间
创建缓冲区文件
没有创建缓存文件的菜单项,通过查询窗口创建。Ctrl+Shift+A,然后输入buffer
运行/调试项目
运行/调试配置
要在IDEA中运行或调试代码,需要使用运行/调试配置。IDEA附带了许多运行/调试配置类型,每个运行/调试配置类
型都有自己的默认设置。可以基于这些默认设置创建相应类型的新运行/调试配置,每个运行/调试配置代表一组命名
的运行/调试启动属性。
临时配置
每次为没有永久配置的项目选择“运行<item_name>”或“ 调试<item_name>”时,将自动创建临时运行/调试 配置。临
时配置可以保存为永久配置。临时配置标有半透明图标,其管理方式与永久配置相同。 默认情况下,每个项目允许5
个临时配置。可以通过“ 编辑配置”对话框更改此限制。
永久配置
为特定类或方法显式创建永久运行/调试配置。
创建运行/调试配置 - 打开“ 运行/调试配置” 对话框:
选择 运行| 从主菜单中编辑配置。
在导航栏(工具栏显示时导航栏不在显示运行/调试按钮)或者工具栏中,从运行/调试配置的选择器中选择编辑
配置。
按 Shift+Alt+F10,然后按0 或从弹出窗口中选择配置,然后按 F4。 2. 在“ 运行/调试配置” 对话框中,单击 工具栏上的+或按 Alt+Insert
该列表显示默认的运行/调试配置。选择所需的配置类型。
右侧窗格中显示的字段显示所选配置类型的默认设置。
Application项目
参考资料:http://127.0.0.1:63342/help/run-debug-configuration-application.html
Redirect input from:
重定向标准输入,此处设置的文件作为System.in的输入源,而不再是键盘
Shorten command line:
如果类路径太长或者有太多的VM参数导致超出OS命令行长度限制,则可以使用这个选项
如:JAR manifest,IDEA创建一个临时的classpath.jar,该jar文件中包含真实的-classpath参数值
Enable capturing form snapshots:
这个选项用来将通过其他方式创建的GUI表单转换为IntelliJ IDEA GUI Designer表单
https://www.jetbrains.com/help/idea/2018.3/creating-and-opening-forms.html
Web项目
VM选项:
-Xms256m //初始内存
-Xmx256m //最大内存
-showversion //显示JDK版本并运行程序
运行
查看正在运行的进程
Run | Show Running List.
调试
构建项目
构建项目包括两种过程,一个是build,只是编译和处理资源文件,一个是按照项目结构中配置的artifact输出项目或
者模块。
Build:
编译模块源路径中的源代码并将编译结果放入到输出路径。
编译模块测试路径中的源代码并将结果放入到测试输出路径。
复制资源文件到输出路径中
在“消息”工具窗口中报告问题。
选择Build | Build’目标’,或按 Ctrl+Shift+F9。
Build artifacts:
artifact可以是一个压缩文件或包含以下结构元素的目录结构:
一个或多个模块的编译输出
模块依赖项中lib库
资源集合(网页,图片,描述符文件等)
其他artifacts
单个文件,目录和档案
通过Build | Build artifacts执行Build artifacts
Maven
1:配置
配置自安装的Maven,不使用IDEA自己带的
Maven的依赖自动导入工程的classpath
如果需要清除项目的依赖项,重新自动生成依赖项,可以删除依赖项,让后取消自动导入 - 使用
版本控制
本地历史
参考资料:https://www.jetbrains.com/help/idea/local-history.html
IDEA使用本地历史记录不断跟踪对项目所做的所有更改,并显示它们之间的差异,并能够在必要时回滚到任何点。
查看文件或目录本地历史
在项目工具窗口选中对应的文件或目录,然后使用菜单:VCS|Local History| Show History
查看类、方法、字段、选中内容的本地历史
右键单击编辑器中的类、方法、字段名称或者选中内容,指向“ 本地历史记录”,然后单击“ 显示类、方法、字段名称
或者选中内容的历史记录”
修改记录标签
标记当前修改
VCS|Local History|Put Label
查看最近的更改 除了详细的本地历史记录,IntelliJ IDEA还提供了所有项目最近主要变化的摘要。
View| Recent Changes.
历史记录保存时间
默认情况下,本地历史记录配置为存储最近5个工作日(即修改文件的日期)的修订。
要更改本地历史记录的保留期限: - 在“ help”菜单上,单击“ 查找操作”或按Ctrl+Shift+A。 2. 查找Registry 。 3. 修改localHistory.daysToKeep参数的值。
- 单击“ 关闭”并重新启动IntelliJ IDEA以使更改生效。
或者,可以通过配置JVM选项将localHistory.daysToKeep参数作为Java属性传递。例如,要将保留期设置为30天,请
将以下行添加到JVM选项文件中:
-DlocalHistory.daysToKeep=30 如果要完全禁用“ 本地历史记录”,请将保留期限设置为0。
历史记录保存地址
本地历史记录存储为IDEA系统目录中LocalHistory 子目录下的二进制文件,可以使用idea.system.path属性更改系统
目录的位置
%HOMEPATH%.\system
Version Control(版本控制)
IDEA 提供与多个版本控制系统(在文档中称为 VCS)的集成。这包括支持特定于每个 VCS 的功能以及针对常见 VCS
任务的统一接口和管理。
IDEA支持两个级别的版本控制集成: VCS Operations Popup(Alt+` 或 VCS | VCS Operations Popup)可快速调
用任何与VCS相关的命令。弹出窗口中的操作列表取决于当前启用的VCS。
启用VCS
SVN
启用SVN集成后,可以从 IDEA内部执行基本的Subversion操作。
IDEA目前支持与Subversion 1.7及更高版本的集成。IDEA默认已经安装了Subversion插件,除此之外,还需要在计
算机上安装命令行客户端。
导入项目到版本库
IDEA的SVN插件在导入项目时会尝试使用本地SVN的用户缓存信息,如果没有缓存用户信息则需要输入,输入的用户
信息保存在IDEA的系统目录中。
SVN的本地用户信息可以通过TortoiseSVN菜单Settings->Saved Data->Authentication data,Clear 清理
SVN在Windows下的用户数据保存目录: C:\Documents and Settings\Administrator\Application
Data\Subversion\auth 需要显示隐藏文件才可以看得到。
从版本库检出
项目导入到版本库后,需要checkout到本地,checkout时可以选择当前目录
提交/更新代码
忽略文件
提交时工程目录下需要忽略的文件: - .idea目录下保持用户特定设置的文件不应该提交,workspace.xml、usage.statistics.xml、tasks.xml
- 模块目录下的.iml文件应该提交
- mavn项目参考以下网址
参考资料:
常用插件
热门插件下载:https://plugins.jetbrains.com/search?pr=idea&pr_productId=idea&orderBy=downloads
可以查看插件下载量排行
JRebel (热加载) 1. 什么是热加载
何为热加载(hotswap),热加载是在不重启 Java 虚拟机的前提下,能自动侦测到 class 文件的变化,更新运
行时 class 的行为。
对于中大型应用开发来说,每次的重启都需要花费大量的时间成本,而在开发过程中又需要不断的重启应用以
查看修改后的运行效果。
Java 类是通过 Java 虚拟机加载的,某个类的 class 文件在被 classloader 加载后,会生成对应的 Class 对象,
之后就可以创建该类的实例。默认的虚拟机行为只会在启动时加载类,如果后期有一个类需要更新的话,单纯
替换编译的 class 文件,Java 虚拟机是不会更新正在运行的 class。 2. 实现方式
目前,实现热加载的方式基本就是自定义classloader 或者 javaagent,Spring Boot的spring-boot-devtools就
是是通过自定义classloader 来实现的,当某个class修改后,重新加载所有自定义类。而Jrebel是通过
javaagent实现的。
Web应用的开发过程中,可以使用Tomcat的热部署(上下文中配置reloadable=“true”),也可以在IDE中选择
debug模式来完成启动应用,IDE中在debug模式下启动时,自动开启了Tomcat的热部署。
Tomcat的热部署,只是监控了classes和lib下的class文件,但是当配置文件修改时,不能完成热部署,目前的
最好的方式是使用Jrebel。
Jrebel不只基于javaagent做了class文件的热加载,还对大多常见框架做了深度集成,如:Spring配置文件修改
时,Jrebel可以检测到,然后创建新加入的bean。但是Jrebel也不是万能的,例如:@WebServlet的映射路径修
改后,类可以被重新加载,但是映射路径不能更新,因为@WebServlet的解析是在Tomcat启动时由Tomcat解
析完成的,如果要完成映射路径的热更新,需要Jrebel做Tomcat的深度集成,让Tomcat重新解析注解
@WebServlet - **
http://139.199.89.239:1008/88414687-3b91-4286-89ba-2dc813b107ce
**账号:http://jrebel.sangbo.pub/随便写个姓名 例如:http://jrebel.sangbo.pub/sangbo **邮箱:随便输入一个邮箱 例如:[email protected] 3. 在项目中启用JRebel - 使用JRebel启动项目
Translation(翻译插件)
可以通过这两个窗口翻译,也可以选择需要翻译的内容,然后右键;ectranslation也是一个翻译插件,下载量没这个
多
Statistic(项目统计信息)
显示项目统计信息 - 使用
- 设置
Material Theme UI(UI 样式)
IDEA没有提供用于创建自定义主题的API,默认提供了Darcula和IntelliJ。这个插件利用Java Swing的主题功能覆盖
Darcula的设置。从而提供更好的观感,包括布局、颜色和图标等。
Material Theme 基于 Google提出的Material Design视觉设计规范设计,喜欢暗黑系界面的同志可以试试。
Material Design 旨在为手机、平板电脑、台式机和“其他平台”提供更一致、更广泛的观感。
工具栏按钮:
修改主题、强调色、配置向导
装了以后就只能用它的样式了,除非禁用插件
Grep console(控制台颜色)
对控制台的日志加入颜色
Alibaba Java Coding Guidelines(代码规范)
检测代码规范的拆件,有利于养成良好的编程习惯。
Maven Helper
Maven开发辅助插件
Free Mybatis plugin(Mybatis Mapper到SQL)
点击Mapper接口的方法直接跳转到xml文件中。
MyBatis Log Plugin(Mybatis SQL)
这款插件直接将Mybatis执行的sql脚本显示出来,无需处理,可以直接复制出来执行的
RestfulToolkit(MVC URL查找)
Spring MVC网页开发的时候,我们都是通过requestmapping的方式来定义页面的URL地址的,为了找到这个地址我
们一般都是cmd+shift+F的方式进行查找,大家都知道,我们URL的命名一个是类requestmapping+方法
requestmapping,查找的时候还是有那么一点不方便的,restfultookit就能很方便的帮忙进行查找
RESTClient
RESTClient 可测试RESTFul
常用小工具
Database
Database 提供navicat等数据库客户端的功能,同时可以生成ORM框架相关的文件,如domain 等。
SSH Terminal
如果需要连接Linux,可以使用SecureCRT,Xshell等远程连接工具,IDEA可以集成这些工具,同时IDEA也提供了自
己的选择终端插件(SSH Remote Run) 1. 不保存连接信息
这种方式是不保存连接信息的,下次连接还需要填写服务器信息 - 保存连接信息
通过菜单Tools|Start SSH Session可以选择连接 - 远程发布
可以通过刚才创建的服务器连接信息上传文件到服务器,但是需要填写Mapping信息
上传文件到服务器
附录:
文件图标
通用图标:
http://127.0.0.1:63342/help/symbols.html
图标 含义
类
抽象类
接口
包含main方法的类
注解
方法
成员变量
目录
模块
模块组
包
源码根目录
public
只读的,如:来源于jar文件的class
private
project
包访问权限
抽象方法
参数
静态的
其他图标:
以下是通用图标,其它图标参考对应的指南,如结构工具窗口的图标:
http://127.0.0.1:63342/help/structure-tool-window-file-structure-popup.html