「硬核干货」总结IDEA开发的26个常用设置

前言
程序员对待IDE都是虔诚的,经常因为谁是最好的IDE而在江湖上掀起波澜,曾经我也是。

后来我遇到了IDEA,从此是它,余生都是它。
IDEA 毫无疑问是目前最强大的Java开发工具了,但是大部分的人并没有将它用到极致,很多实用的配置,插件,小技巧被忽视。就像JDK8的新特性一样,你知道它在且坚持不用,但是只要用过一次就知道什么是真滴香。

以下所有常见配置的思维导图,内容丰富,思维导图配合 Ctrl+F 搜索食用风味儿更佳。
先赞后看,养成习惯
IDEA 软件设置Settings页面
Settings是对软件本身的一些属性进行配置,例如字体 主题 背景图 插件等。
如何打开Settings设置页面

Settings设置页面结构详解

结构
- Appearance & Behavior 外观和行为
- Keymap 快捷键
- Editor 编辑器设置
- Plugins 插件
- Version Control 版本控制
- Build,Execution,Deployment 构建,执行,部署
- Languages & Frameworks 语言和框架
- Tools 工具集
IDEA 常见的xx个设置
绝大部分的设置都包含效果示意图,文章结构:设置方法-->效果示意图
Appearance & Behavior 外观和行为
设置主题

目前我的IDEA中有两套主题:Darcula, IntelliJ。
- Darcula 就是神秘的黑色主题,我偏爱黑色
- IntelliJ 白色主题
设置菜单字体

Keymap 快捷键
设置为Eclipse快捷键的键位
如果对 Eclipse 难以忘怀可以使用其键位,这种操作我也不推荐,感觉别扭。

修改快捷键
不要一次性修改大量的快捷键

- Add keyboard Shortcut 添加键盘快捷键 实际上就是修改当前的键位
- Add Mouse Shortcut 增加鼠标捷径
- Add Abbreviation
- Remove Ctrl+Alt+Shift+S 移除改快捷键
查看快捷键的功能
通过快捷键 查找快捷键的功能,例如:你不知道 Ctrl+F什么意思 可以通过该功能进行搜索

Editor 编辑器设置
Editor 中的设置可以说是最高频使用的设置了,编辑区的字体,自动导包,注释生成等等
什么是Editor编辑器呢?就是写代码的区域
Editor-General
设置鼠标滚轮滚动修改字体大小

设置成功之后,就可以通过 Ctrl+滚轮 实现代码字体大小的调节了
设置鼠标悬浮提示

悬停提示是一个非常有用的功能,效果如下

设置自动导包

- Add unambiguous imports on the fly:自动导入不明确的结构
- Optimize imports on the fly:自动帮我们优化导入的包
设置显示行号和方法间的分隔符

效果如下

忽略大小写提示
- Ctrl + Alt + S 打开设置界面(或者从菜单File - settings 进来)
- 在搜索框输入Completion定位到Code Completion功能项
- 在右侧配置界面选中All letters
- 在右侧配置界面把Match case(匹配大小写)前面的√去掉,

- IntelliJ IDEA 的代码提示和补充功能有一个特性:区分大小写。如上图标注所示,默认就是 First letter 区分大小写的。
- 区分大小写的情况是这样的:比如我们在 Java 代码文件中输入 stringBuffer, IntelliJ IDEA 默认是不会帮我们提示或是代码补充的,但是如果我们输入 StringBuffer 就可以进行代码提示和补充。
设置取消单行显示标签页(Tabs)的操作
什么是单行显示
如何设置为多行?

效果如下

Editor-Font
修改当前主题代码编辑区的字体

默认字体、字体大小、字体行间距,都可以单独设置
Editor-Color Scheme
修改当前主题控制台输出的字体

修改代码中注释的字体颜色

Editor-Code Style
设置超过指定 import 个数,改为*

Editor-File and Code Template
修改类头的文档注释信息

效果如下

Editor – File Encodings
设置项目文件编码

Transparent native-to-ascii conversion 主要用于转换 ascii,一般都要勾选, 不然 Properties 文件中的注释显示的都不会是中文。
设置当前源文件的编码


对单独文件的编码修改还可以点击右下角的编码设置区。如果代码内容中包含中 文,则会弹出如上的操作选择。其中:
- Reload 表示使用新编码重新加载,新编码不会保存到文件中,重新打开此文 件,旧编码是什么依旧还是什么。
- Convert 表示使用新编码进行转换,新编码会保存到文件中,重新打开此文件, 新编码是什么则是什么。
- 含有中文的代码文件,Convert 之后可能会使中文变成乱码,所以在转换成请 做好备份,不然可能出现转换过程变成乱码,无法还原。
Build、Execution、Deployment
设置自动编译
其他
设置为省电模式

如上图所示,IntelliJ IDEA 有一种叫做 省电模式 的状态,开启这种模式之后 IntelliJ IDEA 会关掉代码检查和代码提示等功能。所以一般也可认为这是一种阅读模式,如果你在开发过程中遇到突然代码文件不能进行检查和提示,可以来看看这里是否有开启该功能。
设置代码分屏展示

效果如下

还可以添加分屏快捷键

背景图设置
- 在idea中 双击shift 出现搜索框 输入: Set Background Image 单击 Set Background Image

2.选择要添加的图片的路径,设置透明度,点击OK 就可以查看效果了

效果如下

IDEA 当前项目结构设置 Project Structure
项目结构配置就是关于当前模块的配置,只对当前模块生效,例如Jar包,包结构,源码文件夹,输出路径,依赖和项目构建信息。
如何打开 Project Structure 页面

Project Structure 页面结构讲解

project
image.png
Modules
可以查看每一个子模块的信息

Artifacts
IDEA带包配置,有时候用IDEA打的包有问题,部署到Tomcat中跑不起来,可以再打包一次。

Facets
当前项目配置文件的相关信息
修改IDEA默认设置

总结
以上就是我总结的IDEA开发常见的所有配置,如果本文对你有帮助,不要忘了收藏点赞支持一些。
关于IDEA的插件和一些使用技巧,请持续关注。

「硬核干货」总结IDEA开发的26个常用设置的更多相关文章
- 硬核干货 | C++后台开发学习路线
2020秋招提前批 C/C++相关开发 拿到腾讯.华为等offer 学习路线及时间安排 推荐时间为4个月,包括四部分:语言,计算机基础知识,项目基础知识,项目实践. 语言 推荐学习1个月 学习方针:视 ...
- [IOT] 自制蓝牙工牌办公室定位系统 (一)—— 阿里物联网平台概览及打通端到云(硬核·干货)
目录:老少皆宜.超长干货文警告 1.快速入门创建产品 -- 小白,打包带走去吹牛 2.代码分析 -- 老炮,快速了解能用上 2.1 从start.sh分析开发环境如何自动构建 2.2 从sample. ...
- 校招必看硬核干货:C++怎么学才能进大厂
目录 关于小猿 如何找资料 自我定位 岗位需求 学习路线及时间安排 资料获取方式 C++语言在历史舞台上出现了不短的时间,虽然一直面临着Python,Go等新语言的挑战,但它在基础架构和大型软件上的优 ...
- MySQL硬核干货:从磁盘读取数据页到缓冲池时,免费链表有什么用?
1.数据库启动的时候,是如何初始化Buffer Pool的? 现在我们已经搞明白一件事儿了,那就是数据库的Buffer Pool到底长成个什么样,大家想必都是理解了 其实说白了,里面就是会包含很多个缓 ...
- 万字硬核干货!6大技巧,极速提升kubectl的生产力!
明晚8:30,k3s实战课程开启!将由Rancher研发总监带你畅游k3s与边缘AI的奇妙世界.课程内容完全由实际使用场景中总结而来,别错过啦~!访问以下链接即可传送到课程现场: http://z-m ...
- 5000+字硬核干货!Redis 分布式集群部署实战
原理: Redis集群采用一致性哈希槽的方式将集群中每个主节点都分配一定的哈希槽,对写入的数据进行哈希后分配到某个主节点进行存储. 集群使用公式(CRC16 key)& 16384计算键key ...
- 硬核干货:5W字17张高清图理解同步器框架AbstractQueuedSynchronizer
前提 并发编程大师Doug Lea在编写JUC(java.util.concurrent)包的时候引入了java.util.concurrent.locks.AbstractQueuedSynchro ...
- 硬核干货:4W字从源码上分析JUC线程池ThreadPoolExecutor的实现原理
前提 很早之前就打算看一次JUC线程池ThreadPoolExecutor的源码实现,由于近段时间比较忙,一直没有时间整理出源码分析的文章.之前在分析扩展线程池实现可回调的Future时候曾经提到并发 ...
- 「雕爷学编程」Arduino动手做(26)——4X4矩阵键盘模块
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...
随机推荐
- JavaScript面向对象 实例与原型
JavaScript 面向对象 和 C# 不太一样,js 的对象是继承自原型的如下: 首先创建一个 js 实例 new function function f () {} 这个函数 会继承 Func ...
- 关于yarn安装,这里做一个备份
安装的是window版本,官网上有三种安装方式. 第一种下载一个.msi的安装包,然后当它运行时会指引你将 Yarn 安装到 Windows 上,因为点开以后页面是404,所以没有用这种方法. 第二种 ...
- sqlalchemy 单表增删改查
1.连接数据库,并创建session from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine engi ...
- 如何在匿名thread子类中保证线程安全
在做性能测试的过程中,我写了两个虚拟类ThreadLimitTimeCount和ThreadLimitTimesCount做框架,通过对线程的标记来完成超时请求的记录.旧方法如下: @Override ...
- javaweb-codereview 学习记录-1
Servlet是在Java Web容器上运行的小程序,通常我们用Servlet来处理一些较为复杂的服务器端的业务逻辑.值得注意的是在Servlet3.0之后(Tomcat7+)可以使用注解方式配置Se ...
- Nmap使用教程(进阶篇)
什么是防火墙? 防火墙是用来控制网络访问的软件或硬件.分为以下两类:1.基于主机的防火墙:2.基于网络的防火墙. 基于主机的防火墙 这是在单台主机上运行的软件,用来控制入站流量(从网络向主机)和出站流 ...
- if(a)是什么意思
if(a)等价于 if(a!=0) if(!a)等价于 if(a==0)
- 「 深入浅出 」集合Set
系列文章 「 深入浅出 」集合List 「 深入浅出 」java集合Collection和Map Set继承自Collection接口,不能包含有重复元素.本篇文章主要讲Set中三个比较重要的实现类: ...
- Ogre源码学习-Image和Texture
以下文字来自源码注释: Image类:保存未压缩的图片数据,是唯一一个可以加载纹理的类.Image对象调用Codec对象来为图片数据解码. 通常,当在图片被加载前需要对它进行额外的处理,或者你想把它复 ...
- 2020.2,《The day after tomorrow》
“The day after tomorrow, where will you be?” 2020春节冠状病毒肆虐被迫禁足家里,无意间打开了2004年由德国罗兰·艾默里奇(Roland Emmeric ...


