当前位置: 首页 > 科技观察

【方向盘】使用IDEA的60+快捷键分享给大家,提高效率的权利(代码补全篇)

时间:2023-03-17 23:05:20 科技观察

前言本系列上一篇文章介绍了IDEA中Run和Debug相关的快捷键。使用后,如虎添翼。正如你所知,IDEA非常“聪明”,可以给你代码提示、智能问题修复等帮助。本文将继续介绍IDEA的代码补全快捷键,加速您的编码过程。专栏【方向盘】——IntelliJIDEA。相关下载【本专栏源码】:https://github.com/yourbatman/FXP-java-ee。【技术专栏源码大本营】:https://github.com/yourbatman/tech-column-learning。【女娲刀-Initializr项目】访问地址:http://152.136.106.14:8761。【程序员网盘】公益上线,注册送1G超小容量,帮你练减法:https://wangpan.yourbatman.cn。【Java开发软件包(Mac)】:https://wangpan.yourbatman.cn/s/rEH0提取码:javakit。版本约定MacOS12.3。iTerm23.4.15(zsh5.8)。IntelliJIDEA2021.3.3。文字IntelliJIDEA快捷方式代码完成涵盖了各种上下文感知代码完成技术,使您能够加快编码过程。基本的自动代码完成。比如输入i.toS:control+space快捷键后,i.toString()会自动补全,这就是代码自动补全功能。值得注意的是,如果此时IDEA有多个补全选项,也就是说它不能帮你决定如何补全代码,那么它会列出所有可能的选项,留给你来做选择决定,如如下图所示显示:这不就是我们常说的代码提示和代码补全功能吗。快捷键是control+space。Tips:在某些场景中连按两次control+space快捷键,有时会有惊喜哦。ShowQuickFixes也叫万能键:在提示错误的地方按下这个快捷键,IDEA总能根据上下文给你一些修复提示,从而快速修复问题。这个快捷键的使用频率也是极高的。基本原则是:哪里报错,哪里就点哪里。CompleteCurrent完成当前语句。描述很抽象,但是功能很强大:这个快捷键可以快速帮你完成还没有完成的语句。那么,什么是Statement(在Java中):它代表某种操作,但是没有返回值。Integeri=100ifstatementbreakstatement...这个时候按这个功能快捷键可以快速完成if语句:说实话,这个快捷键笔者用的比较频繁,但大多数时候只是用来完成声明;在最后。如果让if、while等逻辑语句自动完成,有时会出现逻辑问题,所以在使用时要小心。DeleteLine删除按钮是逐行删除(或者删除选中区域),很多时候我们需要逐行删除,那么这个快捷键就很好用了,可以逐行删除:没有选中的时候,删除光标所在的行。当有选中区域时,删除选中区域的所有行。如图,按下该快捷键,18-23这6行全部删除。DuplicateLineorSelection请注意这个函数的命名和上面的区别:LineorSelection可以知道它可以复制一行或者选中的部分,是OR关系。相比之下,上面的操作只是针对Line,有所不同,具体是:没有选择时,按行复制,将光标所在的行复制到下一行。有选区时,按此时内容复制,与行无关:选多少就复制多少,然后把复制的内容放到选区的末尾。按两次command+d的效果是:最后强调一下,这个快捷键有两个作用:复制1行,或者将选中的内容复制到选中区域的末尾。后者的典型使用场景是:横向内容的快速复制。我真的很喜欢DuplicateEntireLines快捷方式,我更喜欢这个而不是command+d。它的意思是:复制所有行。如果没有选择或者只选择了一行,效果和command+d一样;如果有Selection,则会复制选中区域的所有行,语义更清晰,使用更方便。按两次control+command+↓的效果是:这个效果用起来比较方便。有没有?有没有?将此快捷键与下文介绍的移动快捷键结合使用,将能够发出更大的威力,堪称加强版cv。Tips:IDEA默认没有给这个函数绑定快捷键。我认为这是一个自定义快捷键(与其他键不冲突),比command+d更有用。您可以酌情选择。MoveStatementUp/Down将Statement作为一个整体来移动,着重于整体运动,所以不会出现缺胳膊少腿和残缺不全的情况。它更像是一个自动变速器。IDEA将帮助您决定移动哪些线路并智能地将它们放置到位。位置。如例子所示,如果StatementSystem.out.println(v)要上移,图中已经标出了“合适的位置”,只有三个地方。Tips:只能向上移动3次,因为Statement不能出现在stream之间,main方法不能显示。这就是自动变速器的“好处”。MoveLineUp/Down移动方式为手动传动:您可以决定要移动哪些线(单位:线)。您可以决定具体移动到哪里(逐行移动)。如示例所示,移动到哪里是完全自由的,没有边界。说实话,笔者个人比较喜欢用这种移动方式,比较常用。ReformatCode对代码进行格式化,IDEA(根据格式化模板)帮你整理空格、换行符等格式,让代码看起来更整洁,推荐经常使用。提示:默认情况下,当前文件的所有内容都会被格式化。如果只想本地格式化,那么选择区域格式化,只会影响选中的部分代码另外,IDEA2021.0.1版本新增了一个功能,有一个新的工具ActionsonSave:可以勾选Reformatcode选项,这样保存的时候会自动格式化。ReformatFile的目标也是格式化。当你按下这个快捷键时,会弹出一个对话框:解释这些选项:Scope:Formattingscope:OnlychangesuncommittedtoVCS:Onlyformattedassubmittedtext。选中的文本:只对选中区域的文本进行格式化。整个文件:整个文件。Options:Formattingoptions:Optimizeimports:优化导入(删除无用的导入)。常用Rearrangecode:重新排列代码。根据代码风格代码风格重新排列代码。代码清理不常用:codecleanup。删除不用的变量、方法等不常用的Donotkeeplinebreaks:不保留换行符,即仍然按照代码风格格式化。简而言之就是option+command+l的加强版:可以自定义格式化。不过说实话,实际使用大多是直接使用上面的option+command+l来完成格式化,方便快捷。Optimizeimports一键整理导入语句,删除不用的导入,非常好用。不过说实话,我很少用到这个快捷键,因为我会打开IDEA的自动处理设置,不需要手动操作。如下图(也推荐大家这样做):Override/ImplementsMethods这两个快捷键放在一起是因为它们的功能“相似”:都是override/implementsMethods。例如:publicclassDemoimplementsInitializingBean{}这个类实现了InitializingBean接口但是没有重写它的方法,编译肯定会报错。这时候我们可以使用IDEA快捷键来帮助我们快速生成相关代码。快捷键有很多:control+i:它的语义是implementation。在类内部任意位置按下此快捷键,会弹出未实现的接口方法,如下图:值得注意的是,这里只列出未实现的接口方法,如果有没有满足条件的方法(比如你已经实现了,或者确实没有接口方法需要实现),会弹出如下提示:control+o:itssemanticsiscopying。在类内部任意位置按下这个快捷键,就会弹出所有可以被父类覆盖的方法。另外,还会把还没有实现的接口方法带出来,也可以达到实现接口方法的目的。如下图所示:从这个案例中,相信大家可以感受到control+o和control+i的区别。不过,大家还记得我们之前提到的“万能修复”快捷键吗?没错,就是option+enter快捷键。按下这个按钮,得到如下窗口:此时点击Implementmethods项,会生成所有实现接口还没有实现的方法,注意全部。这三组快捷键看似可以完成接口方法的实现,但各有各的最适合的场景,要因地制宜使用。这三个快捷键笔者用得比较多。另外,对于重写/实现的场景,作者还有一个常用的“trick”,手动写出需要重写/实现的方法名,然后调出提示:这相当于半-自动阻塞,使用它的前提是你需要知道你要覆盖的方法的大概名字,这样IDEA才能提示你。我喜欢用这个方法的主要原因是:焦点可以快速定位到我想要的地方,方法的位置可以自己控制。Generate自动生成构造函数、get/set方法、toString()方法、测试用例等,非常好用的快捷键。在lombok越来越流行的今天,我其实已经很少用到这个快捷键了。行/块注释快速生成代码行注释/块注释。这个太简单也太常见了,就不细说了。小结本文继续介绍IDEA代码补全相关的快捷键。感觉IDEA在上下文感知代码补全技术上很强大。希望在编码的过程中,能够加快您的流程,提高您的生产效率。