工欲善其事必先利其器 。IDEA 工具 相比于 eclipse 使用更为方便,该篇文章详解的介绍了常用快捷键等小技巧,希望大家喜欢。
全局搜索类且包括 Jar 包内容
当想全局搜索 Jar 包中的 class 文件时,采取如下手段:
1、点击 ctrl+shift+f
![c0aceb96eaf0a788943906348d7d5947.gif](https://i-blog.csdnimg.cn/blog_migrate/e22e348338acc77507b040366069c147.gif)
2、双击 shift,调出全局搜索框,勾选 “include non-project classes”选项 。
![0b527f6ea70b898b019b5d72bacb3266.png](https://i-blog.csdnimg.cn/blog_migrate/da91dc405d01e644427046331c058f9c.jpeg)
替换
ctrl+shift+R
一键格式化代碼
Ctrl+Alt+L
写代码好比写书法,合适的代码间距视觉效果更佳。
查看最近编辑的文件
Ctrl+E
![63eec4dbdde8075d48275c8a82f2dd6d.png](https://i-blog.csdnimg.cn/blog_migrate/6ba46fc431e5101f79fd93f9a1fd1f3b.jpeg)
查看最近编辑的地方
Ctrl+Shift+E
![ccd3193e18b10b09f139d9a0a580b7a3.png](https://i-blog.csdnimg.cn/blog_migrate/ca53b5c75dd078d1a400f703a8442897.jpeg)
关闭当前文件
Shift+Click(鼠标左键)
![b6352ae24cfe2c913b747ecb573b71bc.gif](https://i-blog.csdnimg.cn/blog_migrate/1c74b3f47eb62897fc26092f951f3767.gif)
生成构造器/Getter/Setter
Alt+Insert
![459ad28e38ffd92853ce0952aedcf544.png](https://i-blog.csdnimg.cn/blog_migrate/8231fbfb1f9fe44c2b56f525a1508906.png)
注释
Ctrl+/
Ctrl+Shift+/
增加if/try...catch方法等
CTRL+ALT+T
//把选中的代码放在 if/while/for/try里
![55b81273908ec779af6888ffc666fae6.png](https://i-blog.csdnimg.cn/blog_migrate/61c6fba3829a1142d63b9021ce5f9d21.png)
返回至上次浏览的位置
Ctrl+Alt+left/right
![8a07cb2ae5adf7c964fef46240bc675c.gif](https://i-blog.csdnimg.cn/blog_migrate/ce76a67130deaef19c9d0425254b5808.gif)
在使用过程中可以发现,只有当使用鼠标滚轮拖动时,使用该快捷键才可以返回到上次浏览的位置,如果用鼠标左键拖动,则无效。
返回上次编辑的位置
Ctrl+Shift+Backspace
![99137c23a3268e147ad3f85223e0fa7e.gif](https://i-blog.csdnimg.cn/blog_migrate/f97408a98c2a2c8abaaa406145734bf1.gif)
查看方法在那里被调用
Alt+F7
初次使用需要勾选搜索范围
![3bf13e4cdbc97b1a2d8f4d30d839fe7c.png](https://i-blog.csdnimg.cn/blog_migrate/6f770d1a46359e7b270f8db70823d251.jpeg)
![18bd70d34e287e7ed583cdb3733473d1.png](https://i-blog.csdnimg.cn/blog_migrate/68e2492cf01e01ed325f7e096c89c73c.jpeg)
同样还有个类似的快捷键
ctrl+alt+h
![74140e43588a1e37a276b1ff2a5f76b9.png](https://i-blog.csdnimg.cn/blog_migrate/782273a456af2bfe7c9c7e5e0faf853f.jpeg)
两者的区别:
alt+f7
的结果是由大到小的层次,结果的树形结构是模块->包->类->方法ctrl+alt+h
的搜索结果的结构是目标方法->调用目标方法的方法a->调用a的方法b……
查看接口方法在何处重写
1、alt+f7
![926c892b179e004712fa4350c192c10a.png](https://i-blog.csdnimg.cn/blog_migrate/fd7484bf3839d386b042f6829036b1c6.png)
![b832771eb76f2276394f0c149a8bae30.gif](https://i-blog.csdnimg.cn/blog_migrate/4edc6adfbae429e7cd05cefd301c993f.gif)
2、在接口的左边有个向下的小箭头,点击小箭头就能看到方法的实现
![f3103af3355525a1a194078728628927.gif](https://i-blog.csdnimg.cn/blog_migrate/08bd41fa5c150eb7ac3c6a7953880757.gif)
转到父类定义
Ctrl+U
![6c8a3b10c4fcf28dfa5de9b390284931.gif](https://i-blog.csdnimg.cn/blog_migrate/793c09564c0808e26c3e401fa807d0e2.gif)
当前方法展开、折叠
Ctrl+"+/-"
重构
重命名
Shift+F6
所有的文件,类名,函数名,属性名都可以重命名,使用Shift+F6
重命名,所有使用过这个名称的地方都会跟着改变;(除了 XML 等配置文件除外)
重构函数
Ctrl+F6
用于修改函数的参数列表,或者返回值。
![53babc9a33ff01f762dd047b6df1a414.png](https://i-blog.csdnimg.cn/blog_migrate/d321dccc4a36ed23057bb9d168bb7c89.jpeg)
抽取
提取重复内容,如下所示:
@Test
public void keyTest(){
List<String> list = new ArrayList<String>();
list.add("hresh");
list.add("hresh");
list.add("hresh");
list.add("hresh");
list.add("hresh");
list.add("hresh");
}
上述代码 add() 方法中添加同一内容,最好可以将该内容定义为变量。
使用快捷键 Ctrl+Alt+v
![4f69d1c2fadf2636eb06f46fddee8d08.gif](https://i-blog.csdnimg.cn/blog_migrate/8ff51bf6b39a9f80565ffdb328617fc2.gif)
抽取静态变量
Ctrl+Alt+C
![92e111dd4e9764844e2c219a38ced6aa.gif](https://i-blog.csdnimg.cn/blog_migrate/6af4e8dc86f2348feeb139964301a7c7.gif)
热键使用
psvm
public static void main(String[] args) {}
sout
System.out.println();
“abc”.sout
System.out.println("adc");
psf
public static final
ifn
///生成判断是否不为空
if (x != null) {
}
fori
///生成简单for循环
for (int i = 0; i < ; i++) {
}
itli
//生成list的for循环
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
}
itar
///生成array的for循环
int[] array = {1,2,3,4,5};
for (int i = 0; i < array.length; i++) {
int i1 = array[i];
}
iter
///根据最近数组/集合生成增强for循环
for (String s : list) {
}
list.for
///生成指定数组增强for循环
for (String s : list) {
}
iten
///生成 enumeration遍历
while (enumeration.hasMoreElements()) {
Object nextElement = enumeration.nextElement();
}
itit
///生成迭代器 iterator
while (iterator.hasNext()) {
Object next = iterator.next();
}
itco
/// 生成Collection迭代器
for (Iterator iterator = list.iterator(); iterator.hasNext(); ) {
String next = iterator.next();
}
”xxx”.try
/// 生成try.....catch
try {
"xxx"
} catch (Exception e) {
e.printStackTrace();
}
Alt+Enter
Alt + Enter 是最特殊的快捷键,其中包括:导入包,自动修正代码 解决出现的问题 也可以生成返回值等功能,是编写代码中使用最频繁的快捷键,各种使用场景参考:最特殊的快捷键 Alt + Enter 介绍
如果你的 IDEA 无法使用该快捷键,采用以下解决方案:
1、 进入Settings->Keymap->搜索:show Intention Actions 这个快捷键。确保默认快捷键是正确的。
![4a5225a91dfa9d03e5f7b075dbecd8a0.png](https://i-blog.csdnimg.cn/blog_migrate/589763c0c1afac667ced30c2d873daeb.jpeg)
2、 Editor->intention->搜索:refactorings ,确保下述选项都勾上。
![b90d80f2bb744b45f896814497c2b1bb.png](https://i-blog.csdnimg.cn/blog_migrate/6201cdbdda57bc88a2b8fe6ba8ba8c6a.jpeg)
其他
以下内容按照个人使用习惯来配置:
Ctrl+Y :删除当前行,还有个类似的快捷键 Ctrl+X
,不过后者无法一次性删除多行,个人习惯使用 Ctrl+D
来删除。
Ctrl+D :复制行,个人习惯使用 Ctrl+Alt+Down
。
Alt+逗号:移动到当前代码首部。
Alt+句号:移动到当前代码尾部。
除了上述内容,如果你还感兴趣,可以参看一下我的另一篇文章:Idea 使用技巧记录
后续会时刻记录 IDEA 新的使用小技巧,愿大家都能高效地使用 IDEA 进行开发工作。如果你觉得文章不错,可以点赞支持一下,非常感谢。