前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(代码补全篇)

【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(代码补全篇)

作者头像
YourBatman
发布于 2022-09-08 07:18:10
发布于 2022-09-08 07:18:10
2.2K00
代码可运行
举报
文章被收录于专栏:BAT的乌托邦BAT的乌托邦
运行总次数:0
代码可运行

本文已被https://yourbatman.cn收录;女娲Knife-Initializr工程可公开访问啦;程序员专用网盘https://wangpan.yourbatman.cn;技术专栏源代码大本营:https://github.com/yourbatman/tech-column-learning;公号后台回复“专栏列表”获取全部小而美的原创技术专栏

你好,我是方向盘(YourBatman),坐稳扶好,开始发车。

Title

Link

所属专栏

【方向盘】-IntelliJ IDEA

源代码

https://github.com/yourbatman/FXP-java-ee

程序员专用网盘公益上线啦,注册送1G超小容量,帮你实践做减法

https://wangpan.yourbatman.cn

Java开发软件包(Mac)

https://wangpan.yourbatman.cn/s/rEH0 提取码:javakit

女娲工程

http://152.136.106.14:8761

版本约定

[Mac OS 12.3],[iTerm2 3.4.15(zsh 5.8)],[IntelliJ IDEA 2021.3.3]

📚前言

本系列上篇文章介绍了IDEA里关于Run运行、Debug调试相关的快捷键,熟练后使用起来逼格更高了有木有。

如你所知,IDEA非常的“智能”,能给与你代码提示、问题智能修复等帮助。本文将继续介绍IDEA在代码补全方面的快捷键,加快你的编码过程。

✍正文

🌈IntelliJ IDEA快捷键

🚀Code Completion

涵盖了各种上下文感知的代码完成技术,使你能够加快你的编码过程。

🚩Basic

Action Name

Key

Basic

control + space

自动代码补全。比如i.toS敲打后:

按下control + space快捷键,将自动补全i.toString(),这就是代码自动补全功能。

值得注意的是,若此时IDEA有多个补全选项,也就是说无法帮你决策如何补全代码,这时就会列出所有可能选项,交由你来做选择决策,正如下图所示:

这不就是津津乐道的代码提示、代码补全功能吗。快捷键就是control + space

Tips:control + space快捷键在某些场景按两次,有时候你能得到惊喜哦

🚩Show Quick Fixes/Context Actions

Action Name

Key

Show Quick Fixes/Context Actions

option + 回车

也叫它万能键:在提示报错的地方按下此快捷键,IDEA根据上下文总能给你一些修复提示,达到快速修复问题的目的。

这个快捷键的使用频率也贼高,基本原则是:哪里报错点哪里

🚩Complete Current Statement

Action Name

Key

Complete Current Statement

command + shift + 回车

完成当前语句。形容很抽象,功能很强大:当前还未完成的语句,此快捷键可快速帮你完成。那么,(Java中)什么是Statement:表示某种操作, 但是没有返回值

  • Integer i = 100;
  • if语句
  • break语句

此时按下此功能快捷键,将快速补全if语句:

老实说,笔者使用该快捷键频率很高,但绝大多数情况下只用于补全语句末尾的;。若让自动补全if、while等这种逻辑语句的时候,有时候会出现逻辑问题,所以你使用的时候也要小心。

🚩Delete Line

Action Name

Key

Delete Line

command + delete

delete按键是一个个删除(或者删除选中的区域),而很多时候我们需要按行删除,这时该快捷键就非常好用了,它可以按行删除:

  • 没有任何选中时,删除光标所在行
  • 有选中区域时,删除选中区域所有行

如图所示,按下此快捷键时18-23共6行将全部被删除。

🚩Duplicate Line or Selection

Action Name

Key

Duplicate Line or Selection

command + d

请注意该功能命名和上面的差异:Line or Selection可知它即可复制一行,又可复制选中部分,是或者的关系。对比,上面有且仅针对行Line进行操作,这是不一样的,具体表现在:

  • 没有任何选中时,按行复制,复制光标所在行到下一行
  • 有选中时,这时就按内容复制了,和行没有关系:选中多少复制多少,然后将复制的内容放到选中区域尾部

按两次command + d的效果为:

最后再强调一下,可认为该快捷键具有两个功能:复制1行,或者复制选中内容到选中区域末尾。后者的典型使用场景是:横向内容快速拷贝。

🚩Duplicate Entire Lines

Action Name

Key

Duplicate Entire Lines

control + command + ↓

这个快捷键我贼喜欢,相较于command + d我更喜欢这个。它的含义是:复制全部行。若没有任何选中or只选中一行,效果同command + d;若有Selection,那么它复制的是选中区域的所有行,语义更加清晰,使用更加便捷。

按两次control + command + ↓的效果为:

这种效果用起来更方便有木有,有木有?使用此快捷键再结合下面介绍的移动快捷键,将可以发出更大威力,可谓加强版CV

Tips:IDEA默认并没有给该功能绑定快捷键,笔者觉得这个比command + d更好用而自定义的(和其它键无冲突)快捷键,各位酌情取之哈

🚩Move Statement Up/Down

Action Name

Key

Move Statement Up/Down

command + shift + ↑/↓

将Statement作为一个整体进行移动,重点是整体移动,所以不会存在缺胳膊少腿不完整现象,它更像自动挡,由IDEA帮你决策移动哪些行、以及智能放到合适的位置

如图例子,若要向上移动System.out.println(v)这个Statement的话,“合适的位置”在图中已标出,只有三处。

Tips:只能向上移动3次,因为Statement不可能出现在stream之间,也不能出main方法嘛。这便就是自动挡的“好处”

🚩Move Line Up/Down

Action Name

Key

Move Line Up/Down

option + shift + ↑/↓

该移动方式就是手动挡喽:

  • 具体移动哪些行自己定(单位:行)
  • 具体移动到哪里自己定(一行一行的移动)

如图例子,移到哪里去完全自由,且没有边界。实话讲,笔者个人还蛮喜欢使用这种移动方式的,更为常用。

🚩Reformat Code

Action Name

Key

Reformat Code

option + command + l

格式化代码,IDEA(根据格式化模板)帮你整理空格、换行等格式,让代码看起来更整洁,建议经常使用。

Tips:默认会格式化当前文件的所有内容。若只想局部格式化,那就选择区域后格式化,只会作用于选择的那部分代码

另外,在IDEA 2021.0.1版本新增了特性,有个新工具Actions on Save:可勾选Reformat code选项,这样在保存的时候就自动格式化啦

🚩Reformat File

Action Name

Key

Reformat File…

option + command + l

它的目标也是格式化,当按下此快捷键时会弹出对话框:

解释这些选项:

  • Scope:格式化范围
    • Only changes uncommitted to VCS:只格式化为提交的文本
    • Selected text:只格式化选中区域的文本
    • Whole file:整个文件
  • Options:格式化选项
    • Optimize imports:优化导包(删除无用的导包)。常用
    • Rearrange code:重新排列代码。根据code style代码样式对代码重新排列。不常用
    • Code cleanup:代码清理。删除掉未被使用的变量、方法等。不常用
    • Do not keep line breaks:不保留换行,也就是仍按照code style方式去格式化。不常用

言而总之,它是option + command + l的加强版:可对格式化定制化。但老实讲,实际使用大都还是直接使用上面的option + command + l完成格式化,方便快捷。

🚩Optimize imports

Action Name

Key

Optimize imports

control + option + o

一键整理导入语句,删除没有使用过的导入,非常使用。

不过实话讲,这个快捷键笔者很少使用,原因是我会开启IDEA的自动处理设置,所以就不用我再手动处理啦。如下图所示(也建议你这么干):

🚩Override/Implements Methods

Action Name

Key

Override Methods…

control + o

Implements Methods…

control + i

这两个快捷键放在一起,因为它俩功能很“相似”:都是复写/实现方法。举个例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Demo implements InitializingBean {

}

该类实现了InitializingBean接口但没复写其方法,编译肯定报错的。这时我们可以借助IDEA快捷键帮我们快速生成相关代码,有多种快捷键方式:

  • control + i:它的语义是实现。在类内部任意位置按下此快捷键,会弹出还未实现接口方法,如下图所示:

值得注意的是,这里只会列出还未实现接口方法,若已没有符合条件的方法(比如你都已经实现了,或者真的没有接口方法待实现了)就会弹出如下提示:

  • control + o:它的语义是复写。在类内部任意位置按下此快捷键,会弹出父类可以复写的所有方法,另外它还会附带把还未实现的接口方法带出来,也能达到实现接口方法的目的。如下图所示:

从这个case相信你能感受到control + ocontrol + i的区别了吧。

然而,你是否还联想到咱前面讲过一个个“万能修复”快捷键呢?是的,就是option + 回车快捷键。按下此键,得到如下窗口:

这时点击Implement methods这项,将会生成实现接口所有的还未实现的方法,注意是所有哦。

这三组快捷键看似都可以完成接口方法的实现问题,但各有各自最适合的场景,使用时因地制宜。笔者这三个快捷键使用得都挺多的。除此之外,针对复写/实现这种场景,笔者还有一个常用的“小技巧”,手动书写出需要复写/实现的方法名然后调出提示:

这就相当于半自动挡喽,使用的前提是你需要知道你想复写的方法的大致名称,这样IDEA才能提示你。我喜欢使用该方式的主要原因:焦点可快速定位到我想要的地方,方法的位置自己也可控。

🚩Generate

Action Name

Key

Generate…

command + n或者control + 回车

自动生成构造器、get/set方法、toString()方法、测试用例等等,非常好用的一个快捷键。

在lombok越来越流行的今天,这个快捷键笔者其实已经很少使用了。

🚩Line/Block Comment

Action Name

Key

Comment with Line Comment

command + /

Comment with Block Comment

command + optino/shift + /或者 optino + shift + /

快速生成代码行注释/块注释,这个太简单也太常,就不赘述了。

🍞总结

本文继续介绍了IDEA 代码补全相关的快捷键,感受到IDEA在上下文感知的代码完成技术上的强大,希望在编码的过程中,能加快你的进程,提升你的出活效率。

还是补上那句话:快捷键没有任何技巧性,练就完了!下篇继续介绍Intellij IDEA的实用快捷键。那,咱们还是下次再见!

推荐阅读

我是方向盘(YourBatman):前25年不会写Hallo World、早已毕业的大龄程序员。高中时期《梦幻西游》骨灰玩家,网瘾失足、清考、延期毕业、房产中介、保险销售、送外卖…是我不可抹灭的黑标签

  • 🎓2013.07 清考、毕业答辩3次未通过、延期毕业
  • 🏷2013.08-2014.07 宁夏中介公司卖二手房1年,毕业后第1份工作
  • ️️🏷2014.07-2015.05 荆州/武汉,泰康人寿卖保险3月、饿了么送外卖2月,还有炸鸡排、直销等第2345份工作
  • 🏷2015.08 开始从事Java开发,闯过外包,呆过大厂!擅长抽象思维,任基础架构团队负责人
  • 🏷2021.08 因“双减政策”失业!历经9面,终获美团外卖L8的offer
  • 🙅🏻‍♀️Java架构师、Spring开源贡献者、CSDN博客之星年度Top 10、领域建模专家、写作大赛1/2届评委
  • 📚高质量代码、规范践行者;DDD领域驱动深度实践;即将出版书籍《Spring奇淫巧技》

序号

专栏名称

简介

01

【方向盘】-程序人生

程序人生,人生程序

02

【方向盘】-资讯/新特性

IDEA、JDK、Spring技术栈…新特性

03

【方向盘】-IntelliJ IDEA

熟练使用IDEA就相当拥有物理外挂,助你高效编码

04

【方向盘】-Bean Validation

熟练掌握数据校验,减少90%的垃圾代码

05

【方向盘】-日期时间

帮你解决JDK Date、JSR 310日期/其实 的一切问题

06

【方向盘】-Spring类型转换

Spring类型转换-框架设计的基石

07

【方向盘】-Spring static

static关键字在Spring里的应用

08

【方向盘】-Cors跨域

关于跨域请求问题,本专栏足矣

09

【方向盘】-Jackson

Almost Maybe是最好的Jackson专栏

10

【方向盘】-Spring配置类

专讲@Configuration配置类,你懂的

11

【方向盘】-Spring技术栈

暂无所属小分类的,Spring技术栈大分类

12

【方向盘】-JDK

暂无所属小分类的,JDK技术栈大分类

13

【方向盘】-Servlet

Servlet规范、Web相关内容专题

14

【方向盘】-Java EE

从Java EE到Jakarta EE,30年弹指一挥间

15

【方向盘】-工具/提效

开发工具、软件工具,目标是提效

16

【方向盘】-Spring技术栈新特性

Spring Framework、Spring Boot、Spring Cloud、Spring其它技术

17

【方向盘】-基本功

每个Javaer,都需要有扎实的基本功

99

源代码库

大多数专栏均配有源代码,都在这里

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python新工具:用三行代码提取PDF表格数据
PDF 文件是一种非常常用的文件格式,通常用于正式的电子版文件。它能够很好的将不同的排版格式固定下来,形成版面清晰且美观的展示效果。然而,对于想要从 PDF 中提取信息的人们来说,PDF 是个噩梦,尤其是表格。
Python数据科学
2019/10/10
1.1K0
Python新工具:用三行代码提取PDF表格数据
Python新工具:用三行代码提取PDF表格数据
PDF 文件是一种非常常用的文件格式,通常用于正式的电子版文件。它能够很好的将不同的排版格式固定下来,形成版面清晰且美观的展示效果。然而,对于想要从 PDF 中提取信息的人们来说,PDF 是个噩梦,尤其是表格。
昱良
2019/10/13
8790
python库Camelot从pdf抽取表格数据
首先,让我们看一个简单的例子:eg.pdf,整个文件只有一页,这一页中只有一个表格,如下:
周小董
2019/08/18
8.1K0
python日常技巧(2)将pdf文件中的表格转化成csv文件
从 PDF 表格中提取表格数据时比较困难的。不久前,一位开发者提供了一个名为 Camelot 的工具,满足大家从 PDF 文件中提取表格数据。
用户1359560
2019/11/21
2.4K0
[Python工具]pdf表格提取camelot安装教程
.每一个表格数据是一个panda的dataframe,从而可以很方便的集成到ETL和数据分析工作流中
小宋是呢
2019/06/27
3.3K0
AI办公自动化:用ChatGPT批量提取PDF中的表格到Excel
读取PDF文件:"F:\AI自媒体内容\AI炒股\已经阅读\20240612-海通国际-中国互联网:“人工智能+”引爆新质生产力革命.pdf"
AIGC部落
2024/09/11
4990
AI办公自动化:用ChatGPT批量提取PDF中的表格到Excel
Python骚操作,提取pdf文件中的表格数据!
在实际研究中,我们经常需要获取大量数据,而这些数据很大一部分以pdf表格的形式呈现,如公司年报、发行上市公告等。面对如此多的数据表格,采用手工复制黏贴的方式显然并不可取。那么如何才能高效提取出pdf文件中的表格数据呢?
诸葛青云
2019/03/31
7.7K0
Python骚操作,提取pdf文件中的表格数据!
三大神器助力Python提取pdf文档信息
今天这篇文章是今年最后一篇文章了,因此也是一篇非常有用的技术文章,你可以现在只了解一下并进行收藏,等你需要用到的时候再拿出来看一看,这样就好了。
啃饼思录
2019/02/26
20.8K0
3行代码将PDF中表格转成Excel文件
之前有粉丝问我,能不能帮忙写个脚本,把PDF文件中的表格转成Excel。我说现在我没那么多时间,你可以去看看《学习Python 不加班》那本书中应该是会有相应的一些案例。然后呢就没有然后了。今天有空我来写一个转换脚本,一共3行代码搞定。
马拉松程序员
2022/04/26
3.1K1
3行代码将PDF中表格转成Excel文件
10个有趣的Python高级脚本,建议收藏!
比如不久前的复旦大佬,用130行Python代码硬核搞定核酸统计,大大提升了效率,节省了不少时间。
小F
2022/05/26
1.5K0
10个有趣的Python高级脚本,建议收藏!
python实用小脚本
1、提取PDF表格 # 方法① import camelot tables = camelot.read_pdf("tables.pdf") print(tables) tables.export("extracted.csv", f="csv", compress=True) # 方法②, 需要安装Java8 import tabula tabula.read_pdf("tables.pdf", pages="all") tabula.convert_into("table.pdf", "o
不吃小白菜
2022/09/22
5890
印度小哥“神剑”:PDF提取表格so easy!
如果经常跟数据表格打交道,那你应该体验过那种令人烦躁到抓狂的心情。但现在,学会下面将要介绍的一款工具的使用方法,相信我,它会让你在工作中简直不能更舒爽。
AI科技大本营
2019/01/02
2.4K0
python提取pdf文档中的表格数据、svg格式转换为pdf
https://www.analyticsvidhya.com/blog/2020/08/how-to-extract-tabular-data-from-pdf-document-using-camelot-in-python/
用户7010445
2020/08/28
1.3K0
一日一技:从PDF完美提取表格
在之前很长一段时间,从PDF文件中提取表格都是一个老大难的问题。无论你使用的是PyPDF2还是其他什么第三方库,提取出来的表格都会变成纯文本,难以二次利用。
青南
2023/09/11
2.3K0
一日一技:从PDF完美提取表格
为了提取pdf中的表格数据,python遇到excel,各显神通!
不知大家在工作中有没有过提取pdf表格数据的经历,按照普通人的思维,提取pdf的表格数据的方法可能会选择复制粘贴,但这是一个相当繁杂且重复的工作。而今天我们会讲解如何用python和excel来提取pdf的表格数据,看二者哪个更为方便!
Python与Excel之交
2021/08/05
3.5K0
Python | GitHub 收藏夹
Week_03: 04.06 - 04.12 库名称 用途 项目主页 geemap 在 Jupyter 中嵌入交互式地图 https://github.com/giswqs/geemap ipyleaflet 在 Jupyter 中嵌入入交互式地图 https://github.com/jupyter-widgets/ipyleaflet ipympl 绘制交互式 Matplotlib 图 https://github.com/voila-gallery/ipympl voila-gridstack 基于
PyStaData
2020/07/21
1.2K0
用 Python 批量提取 PDF 的表格数据,保存为 Excel
需求:想要提取 PDF 的数据,保存到 Excel 中。虽然是可以直接利用 WPS 将 PDF 文件输出成 Excel,但这个功能是收费的,而且如果将大量 PDF转 Excel 的时候,手动去输出是非常耗时的。我们可以利用 Python 的第三方工具库 pdfplumber 快速完成这个功能。
杰哥的IT之旅
2022/05/17
2.6K0
用 Python 批量提取 PDF 的表格数据,保存为 Excel
66.如何使用Python提取PDF表格中数据
用Python提取PDF文件表格中的数据,这里我说的是,只提取PDF文件中表格中的数据,其他数据不提取。这样的需求如何实现?今天就来分享一下这个技能。首先,需要安装一个Python第三方库camelot-py。不得不说Python的第三方库真的是很强大。只有你想不到,没有它做不到的事情。在编写程序之前,你最好准备一个带有表格的PDF文件。用来测试我们编写好的程序。
TalkPython
2020/02/17
3K0
如何使用python提取pdf表格及文本,并保存到excel
pdf是一种便携式文档格式,由Adobe公司设计。因为不受平台限制,且方便保存和传输,所以pdf非常受欢迎。
派大星的数据屋
2022/04/03
3.3K0
如何使用python提取pdf表格及文本,并保存到excel
JMA台风路径数据处理:从PDF到CSV的转换指南
日本气象厅发布的台风路径与强度数据是气象研究和预报的重要依据。然而,这些数据通常以PDF格式提供,给数据处理和分析带来了挑战。本文将详细介绍如何利用Python将PDF中的台风路径数据高效转换为CSV格式,以便于进一步的气象分析和可视化。
用户11172986
2024/10/21
2640
JMA台风路径数据处理:从PDF到CSV的转换指南
推荐阅读
相关推荐
Python新工具:用三行代码提取PDF表格数据
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验