IntelliJ IDEA不好用?那是因为没掌握这些技巧
以下文章来源于Java之道 ,作者小胖儿
想要愉快的coding,一个好的IDE肯定少不了。而对于Java开发者来说,IntelliJ IDEA绝对是Java-IDE的首屈一指的选择(eclipse党还请绕我一命)。
从我第一次下载IDEA到现在已经有一年半了,时间越久我发现我对这个超级智能的IDE爱的越深,尤其是其内置的很多小功能大大的提高了我的日常coding的效率。
下面呢,我就来逐一说说这款优秀的IDE的使用技巧吧(我罗列的估计也就是冰山一角)!
tip:由于我汉化了,所以截图的界面会包含很多中文,但是我会在文字说明处说明其英文
一、提高效率的必备配置
1、代码自动补全提示
设置路径:Settings -> Editor -> General -> Code Completion
如图所示:
2、ctrl+滑轮调整字体大小
设置路径Settings -> Editor -> General
如图所示:
3、自动导包
设置路径Settings -> Editor -> General -> Auto Import
如图所示:
4、显示行号
设置路径Settings -> Editor -> General -> Appearance
如图所示:
二、快乐编码的常用技巧
1、解决错误的万能快捷键alt+Enter
比如有多个可选择的导入的类的时候、比如继承了虚基类或实现了接口但是没有重写方法的时候、或者想使用的类没有在maven中添加依赖的时候……
诸如此类,你都可以先尝试将光标移动到代码标红处然后按下alt+Enter然后看看IDE自动给你推荐的修改代码的提示。
如图(包括但不限于这种情况):
2、妈妈再也不用担心我的代码对齐问题了
刚开始学C语言的时候,很多同学写代码的时候都不进行对齐,然后我们看到的效果如下:
没有IDE的时候,我们的做法是花上几分钟时间一点一点给它解决代码对齐问题。
都9012年了,我们的IDE已经很智能了,一键就可以解决代码对齐问题:
第一种方式:选择导航栏的Code -> Reformat Code
即可
第二种方式:快捷键
ctrl+alt+L
3、手残党的救命功能:全部重命名
有时候,包名、类名、方法名、变量名……这些我们可能要用到很多次的名字,在不经意间写错了,而且还到处引用了很多次(感谢IDE的代码提示功能,不然第二次使用变量名的时候就知道是错的了)。那么这种情况怎么解决呢?
教你一招:IDEA重命名全部的相同引用。下面是使用方法:
将光标移动到那个错误的单词
右键,选择
Refactor -> Rename
,然后你选择的那个单词会出现一个红框在红框内输入重命名后的单词,输入完毕后按回车
可能会在IDE的某个窗口中有提示,这个看自己情况而行吧,我一般都是直接点确认
全部重命名成功
如下图:
这里有的同学可能有疑问,如果某些特殊情况,我在同一个文件里面,第一个方法的参数为List results第二个方法的参数为Map results,那执行完上面的重命名过后会不会两个都修改啊?当然不会。IDEA的智能在于它会检索相同引用的地方,一般就是用户想修改的地方,包括注释的地方
4、快速注释代码
很简单实用的一个功能,当某行或某块代码需要被注释的时候,选中这块代码,键入下面的快捷键即可:
ctrl + /
会在代码前自动添加//
,这个方式会注释掉所有被选中的行ctrl + shift +/
会在光标处或选择的代码块前后添加/*
和*/
,这个方式不能保证正确的注释,只能保证在选择的代码前后添加注释标志,即使未选择代码块,也会在光标所在处天剑/**/
取消注释的快捷键同上,只要在被注释的代码处键入上面的快捷键即可
5、小白最想用的快捷键ctrl + 鼠标单击
5.1 查看源码
不知道变量声明在哪里,不知道方法的源码是什么,不知道类的具体代码是什么……如果你正在饱受上述的煎熬,那么你可以尝试在你不知道的那个东西的地方使用快捷键ctrl + 鼠标单击,比如:
你不知道某个变量实在哪里声明的,那就按住
ctrl
然后单击这个变量名,IDE自动将光标跳转到其声明处你想查看这个类的源码,那就按住
ctrl
然后单击这个类名,IDE自动跳转到这个类
5.2 快速查看使用
这个就是上面的逆过程。
当你不知道这个类在哪里使用过,不知道某个定义的方法在哪里被调用过、某个声明的变量在哪里被使用过……还是尝试使用ctrl + 鼠标单击。
注意查看源码和查看使用的区别:查看源码是用在类名、方法、变量……的使用处,而查看使用是用在.java文件的类名、定义的方法名、变量声明……一类的定义处。
6、快速生成代码
编写POJO类的时候是不是被它的get和set方法逼疯了?编写构造方法的时候写参数类型和参数名是不是很烦?继承了父类但是想重写方法实现的时候是不是还要找到父类看看它的方法名?……
别傻了,IDEA早就考虑到你会有这种需求了,这里带给你一个相当厉害的快捷键alt + insert,这个insert就在键盘的多功能按键处,自己找找吧。
使用示例:
新建一个POJO类,写上基本的字段,然后再类文件的两个花括号之间的随便一处空白键入
alt+insert
,出现这个窗口。(因为我的IDEA已经汉化了,所以他有的功能已经一目了然了)
选择构造get和set
,英文版的是getter and setter
,出现下面的界面。IDEA生成的set方式有两种,一种是返回void的, 另一种是返回当前对象的。具体区别呢,就是我们在set的过程可不可以使用链式结构。
3.选择确定,然后查看生成的代码:
7、最拉风的代码生成器
上面快速生成代码的方式还不够,下面来教给大家一个更加拉风的代码生成器。
for循环、判断空元素、输出到控制台、通过方法返回值生成变量……很多我们日常写代码的时候遇到的问题都在IDEA里面逐一解决了。怎么解决的?请看下面:
快速生成for循环:
在空的代码行输入
fori
或foreach
,然后根据提示按回车,则会自动生成for代码块对数组或集合类进行遍历,输入变量名,然后可以①输入
.for
生成增强型for循环代码块②输入.fori
生成普通for循环代码块③输入forr
生成普通for循环逆序的代码块
快速判断空/非空:输入需要判断的变量名,然后可以①输入
.null
生成判断空的代码块②输入.nn
或.notnull
生成判断非空的代码块快速生成输出语句:输入需要输出到控制台的变量名,然后输入
.sout
生成输出该变量的代码快速生成变量:首先输入要调用的方法,然后输入
.var
自动生成包含变量类型的变量快速生成主方法:在要生成主方法的地方输入
psvm
即可生成主方法,这四个字母代表了public static void main(String[] args)
中的四个单词首字母快速上锁:输入要加锁的变量名,然后输入
.synchronized
即可直接对变量加锁,不要担心单词太长记不住,IDE还有代码提示功能呢快速生成try-catch代码块:在要生成try-catch代码块的语句或变量后面输入
.try
即可快速格式化字符串:在要格式化的字符串或字符串变量后面输入
.format
即可
三、忘掉那奇奇怪怪的指令
当然呢,只是一个标题党,所有的指令还是能记下来就记下来吧,万一哪天boss不让你用IDEA了呢。
然后这一节主要说一下IDEA对于maven和Git的集成工具的使用。
1、maven篇
maven自己的指令其实并不多,但是当我们添加了maven的插件以后,那maven的指令数量就变量不确定了。尤其是,maven的插件并不少,我们不可能把所有的插件的指令都背下来,也不可能每次都去谷歌一下吧。
IDEA为我们提供了很好的解决方式,下面我们来尝试一下:
首先,这一定要是一个maven工程
选择导航栏处
View -> Tool Windows -> Maven
即可弹出一个窗口,如下所示,这个窗口用户可以自定义其位置。我们可以看到,这个串口里面不但包含了基础的maven指令(Lifecycle里),还包含了maven插件的指令。
双击需要执行的指定即可。
2、Git篇
Git指令不多,但是Git指令使用起来的时候总有一种别扭的感觉。而且,Git如果用在命令行处的话,筛选文件什么的也是相当麻烦的,IDEA集成的Git工具可以帮助用户在可视化界面进行Git的相关操作。
2.1 git status
git status指令可以显示当前git项目的文件夹状态包括增删改的文件状态。该指令在IDEA里面直接映射为文件颜色,大概如下(可能每个人的都不一样):
红色:该文件是新建的文件,且没有被
git add
绿色:该文件是新建的文件,且被
git add
蓝色:该文件是被修改过的文件
白色:改文件没有被修改过
如图所示:
2.2 git add
git add指令在IDEA中可以通过在需要git add的文件或文件夹处右键,选择VCS -> Add
不过这个操作我一般不在IDEA中使用,因为还有更好的解决办法。
2.3 git commit
git commit指令在IDEA中可以通过选择VCS -> Commit File...来执行,下面是选择完Commit Files...后的弹出窗口:
2.4 git push
git push指令可以通过选择VCS -> push进行操作。如下:
2.5 git pull
刚刚选择push的时候应该看到了pull按钮了,即VCS -> pull.如下:
2.6 切换分支
选择VCS -> Branches
可以查看并选择分支
可以通过点击窗口右下角的Git标签执行相同的操作
2.7 比较文件修改
在需要比较的文件处点击工具栏处该按钮
即可打开一个窗口进行文件修改比较。
从红可以看到,标了>>的是我们新添加的代码,可以通过点击那个>>符号来直接删除添加的代码
2.8 查看当前文件的修改记录
可以通过点击该按钮
打开一个窗口查看当前文件的修改记录。
四、最后再来点小动作(插件和其他)
1、书签
最近我阅读源码的时候经常遇到一个问题,就是执行到某一处代码,看了他的源码,然后跳了一下界面,再然后就不知道之前看到哪里了。spring的源码几乎每个类文件都有几百几千行代码,然后还有成千上万的类文件,想在找回去犹如大海捞针。
后台我发现,IDEA内置了一个书签功能,大概意思就是给代码行打个标签,然后在我们想回去的时候通过简单操作就可以返回到打标签的代码行了。
具体操作如下:
在需要打标签的代码行处按F11
即可打上标签,打标签的代码行前面会有一个对勾标记
想跳回到打标签的代码时,按
shift + F11
即可打开书签窗口,选择要返回的标签即可同时,我们也可以在书签窗口对我们打的书签进行备注,方便记忆
当然呢,书签还有一个更加牛逼更加方便的功能,就是打个临时标签,然后通过快捷键返回到标签标记处:
在需要打标签的代码行处按
ctrl+shift+数字1234
,然后这时候标记会变为1234(和按得按键相同)需要返回的时候直接按
ctrl+数字1234
即可跳回
2、最骚气的快捷键ctrl + w
这个最骚气的快捷键我已经不知道怎么描述他的作用了,自行尝试吧
3、条件断点
在我们使用断点调试的时候,我们最害怕的就是遇到数组,尤其是数量极大的数组然后其中只有某一个或某一部分出问题了,然后我们调试的时候就不得不添加一个if语句来方便调试。不过我们的IDEA不愧为超级智能的IDE,我们可以通过IDEA直接添加条件断点来实现调试到特定的断点处。
使用办法:
打断点
在断点处右键
键入条件,该条件应该返回一个布尔值,断点会停到该条件为true的时候
4、插件
作为一个优秀的IDE,可能他的功能还不足以满足你的需求,那么功能不够,插件来凑,下面是我个人推荐的几款IDEA插件。
Translation:一款相当强大的翻译插件,支持划词翻译、中英互换等
RestfulToolkit:提供快速定位接口方法、简单的HTTP请求工具及一些其他的强大功能的工具
Mybatis Log Plugin:输出可执行的sql语句
Alibaba Java Coding Guidelines:阿里代码规约检测
本文转载自微信公众号 漫话编程
IntelliJ IDEA不好用?那是因为没掌握这些技巧相关推荐
- 都9012年了,还有人说IntelliJ IDEA不好用?那是因为没掌握这些技巧。
工欲善其事,必先利其器 想要愉快的coding,一个好的IDE肯定少不了.而对于Java开发者来说,IntelliJ IDEA绝对是Java-IDE的首屈一指的选择(eclipse党还请绕我一命). ...
- iphone5信号无服务器,你的iPhone信号不好?那是因为你没有这样设置,设置后信号满格...
iPhone手机给我们的感觉就是流畅,可是它有一个通病,就是信号不太好,如果你的iPhone信号不好,那是因为你还没有这样设置,设置后信号满格. 一.基带查询 首先打开iPhone手机的拨号键盘,然后 ...
- **小铁锤课堂开课啦!学生编程老不好,多半是没压力闹的,要他写总结就好啦!**
小铁锤课堂开课啦!学生编程老不好,多半是没压力闹的,要他写总结就好啦! 一. 多线程 (现阶段接触不到但面试用得上得知识点) 线程:是啥呢,稍微有点常识得猿都知道,这里就不啰嗦了(主要是我也不记得了) ...
- Intellij IDEA 神器那些让人爱不释手的小技巧
作者:Sam哥哥聊技术 原文链接:https://blog.csdn.net/linsongbin1/article/details/80560332 概述 在2018年5月6日写了一篇介绍Intel ...
- Intellij IDEA神器那些让人爱不释手的小技巧
概述 在2018年5月6日写了一篇介绍IntellIJ IDEA的文章,Intellij IDEA神器居然还有这些小技巧,主要是列出一些平时大家可能没用过或者没怎么用,但是又非常好用的IntellIJ ...
- 苹果手机还原网络设置会怎样_苹果手机信号不好,那是因为你没这样设置,这样设置信号顶呱呱...
许多用苹果手机的小伙伴经常和我抱怨说它的手机信号不怎么好,这其实并不是手机本身的原因,最大的原因就是手机基带的问题,今天小编就教大家怎么去看自己手机的基带,接着给大家分享一些提高手机信号的小技巧吧. ...
- Chrome浏览器不好用?因为你没安装扩展插件
一个朋友听说Chrome浏览器很好用,于是她也去使用了.用了大概一个月吧,就疯狂地吐槽谷歌浏览器太难用了,还不如IE浏览器呢.经过了解,原来她竟然不知道扩展插件.Chrome浏览器作为用户量最多的浏览 ...
- Android不好用,都是因为这几点原因
Android早已是全球最大.用户最多的移动操作系统,不过它离全球最好用还差得很远.大家随手就能举出些曾经历过的糟心体验,如手机卡顿!电量不禁用!广告弹窗老是出现!不过很少有人会追根寻底的去问为何如此 ...
- 地砖中间高四边低_地砖上墙到底好不好?幸好我家没这么做否则全毁了!
最近后台有人问我:地砖与瓷砖明明是不一样的材质,为什么现在都开始流行地砖上墙呢?相信很多人看到这个话题都会有一些疑问的吧!今天小编就来个大家说说地砖上墙到底好不好? 地砖与墙砖的材质有什么区别? 很多 ...
最新文章
- The application could not be installed: INSTALL_FAILED_NO_MATCHING_ABIS
- opencv reshape函数详解
- 为asa防火墙配置ssh登陆
- ADO.NET 连接Access2007和Access2003
- 第一章:1.2.2系统分类(二)
- 友盟小米收不到推送消息_App消息推送的到达率多少才是正常的?
- C#LeetCode刷题-Shell
- 高精度练习- P1015 回文数
- python基础for循环和while循环(十)
- delphi idtcpclient 发送十六进制00_25656红单足球预测 中超 20:00 山东鲁能泰山 VS 大连人...
- java.lang.OutOfMemoryError: GC overhead limit exceeded 问题分析和解决(转)
- 使用.net开发手机管理软件 (九) 短信部分——PDU简介及其格式
- Could not find a version that satisfies the requirement torch==1.4.0 (from torchvision)
- docker学习-狂神视频
- mysql jemalloc_Jemalloc优化MySQL和Nginx
- 一个简单的时间片轮转多道程序内核代码
- VBA-save as xlsm
- 代码块:在Java中,使用{}括起来的代码被称为代码块。
- UVM实战 卷I学习笔记2——为验证平台加入各个组件(1)
- 关于串口通信SBUF寄存器随笔:
热门文章
- spring的aop注解配置(了解)
- IDEA同时使用maven和gradle
- 【php】命名空间 和 自动加载的关系
- 在android studio中,引用.so文件
- Win8 官方培训课程
- cron4j的Jfinal plugin
- LOJ - #117. 有源汇有上下界最小流(有源汇有上下界的最小流)
- HDU - 1002 A + B Problem II(大数)
- std map多线程_SEBR:多线程内存回收方案(1)之ConcurrentHasMap
- android qq 登陆 简书,使用QQ第三方登录