`
kidneyball
  • 浏览: 328957 次
  • 性别: Icon_minigender_1
  • 来自: 南太平洋
社区版块
存档分类
最新评论

IDEA Intellij小技巧和插件

阅读更多
使用IDEA Intellij已有两年,在此罗列一下在实践中觉得能有效提升开发效率的一些小技巧和插件。

1. 重设移动键
方向键和Home/End键离基键太远,经常把手移过去其实很费时。所以建议重设到主键盘上。考虑到后面会提到的IdeaVim插件,所以最好使用类似Vim的方案。我个人的设定是:
Ctrl+H  ←
Ctrl+J  ↓
Ctrl+K  ↑
Ctrl+L  →
Ctrl+A  End (Vim中Shift+A是在行尾插入)
Ctrl+I  Home (Vim中Shift+I是在行首插入)

被冲掉的原本的快捷键可以设到Alt上(最常用的Ctrl+A全选和Ctrl+J Live Template)。当然你也可以把移动键设在Alt上,不过使用标准键盘时,左Ctrl可以用手掌来按(使用emacs的必备技能),非常方便。所以我个人喜欢把常用操作设到Ctrl上。


2. 好用的Select Word at Caret快捷键

在IDEA的Keymap中有Select Word at Caret这个动作,字面意思是“选中光标所在的单词”,默认快捷键是Ctrl+W。但事实上,这个动作的实际操作是选中更上一层的语法结构。例如,如果你在一个字符串的一个单词中,按一下Ctrl+W,会选中光标所在单词。再按一下,会选中整个字符串的内容,不包括引号。再按一下,会选中包括引号的字符串。再按一下,会选中整个表达式(如果表达式含有括号,会逐层选中)。再按一下,会选中整个语句块。再按一下,会选中整个方法。再按一下,会选中整个类。


3. Ace Jump插件
可以说Ace Jump和IdeaVim这两个插件是我使用了Intellij后再也不想用eclipse的最主要原因。Ace Jump是一种从emacs上借鉴过来的快速光标跳转方式,操作方式是:你用某个快捷键进入Ace Jump模式后,再按任一个键,当前屏幕中所有该字符都被打上一个字母标记,你只要按这个字母,光标就会跳转到这个字符上。这种跳转方式非常实用,你根本不用管当前光标在什么位置,眼睛只需要盯着需要跳转到的位置,最多三四下按键就能准确把光标定位,开始编辑。按道理这种功能非常容易实现,但偏偏到目前为止我没有在eclipse上找到类似插件。

安装与使用

在Intellij的Setting -> Plugins -> Browse repositories中查找acejump,可以找到两个插件,AceJump和emacsIDEAs。AceJump是最纯正的Ace Jump插件,功能单一,也比较稳定,但我个人感觉没有emacsIDEAs好用。两者最大的差异是,Ace Jump是先按键调出跳转标记,再通过不同功能键(Ctrl,Shift,Alt等)配合书签按键追加额外功能(例如从当前位置选中文本至书签位置)。而emacsIDEAs是使用不同的快捷键进入不同的功能模式(例如跳转到字符,跳转到单词,选中到标签等)同时调出书签标记,然后再按书签按钮实现跳转。感觉emacsIDEAs的方式比较符合我的思维习惯。

如果选择了AceJump插件,重启Intellij后即可使用,默认快捷键是Ctrl+;(分号)。但我习惯将它重设到Alt+K。下面是使用AceJump的效果



在AceJump模式下,按下N键,屏幕可见范围内的字符N均被打上标记,按相应字母即可跳转到该位置。

详细使用方法可以看 http://johnlindquist.com/2012/08/14/ace_jump.html 的视频。不过视频是youtube上的,为了方便墙内朋友,在这里简单列一下可追加的功能:

* 列出标签后按回车键:对更外围的字符进行标签,当屏幕上相同字符太多,标签不够用时。离当前光标较远的字符一开始时不会有标签,你可以不停按回车键直到该字符被打标签
* Shift+回车:对更内围的字符进行标签,当按回车键过了头时使用
* Shift+标签字母:从当前光标位置选中文本到书签位置。
* Alt+标签字母:在书签位置选中一个单词并调出自动补全菜单。

如果选择了emacsIDEAs插件,由于默认快捷键使用了Meta键,在Windows下必须重设快捷键才能使用,我个人的方案是:



在插件说明上就能看到详细功能说明,在这里简单介绍一下,方便英文不好的童鞋:
所有AceJumpXXX快捷键都会进入AceJump模式,但按键调出书签,再按书签字母后会有不同效果
AceJumpChar : 跳转到标签
AceJumpCopy : 将光标当前位置到标签处的文本复制到剪贴板
AceJumpCut  : 将光标当前位置到标签处的文本剪切到剪贴板
AceJumpWord : 调出书签时,只会匹配单词的首字母,但可追加一些复制粘贴的指令。个人觉得不太好用,就不详述了。有兴趣可以看插件说明。

而CopyWithoutSelection与AceJump无关,是emacsIDEAs插件的另一个功能,用来快速把某些文本复制到剪贴板。按下快捷键后,可以再追加以下字母指定复制范围:
w :光标所在单词
s :光标所在字符串(包括引号)
l :光标所在行
b :光标所在语句块({ } 所包含的内容)
q :光标所在字符串内容 (不包括引号)
a :由光标位置至行首
A :由光标位置至文件开头
e :由光标位置至行尾
E :由光标位置至文件末尾
p :光标所在段落

并且,在按下CopyWithoutSelection快捷键后,可以加入一个或两个空格来改变操作。加入一个空格为剪切,加入两个空格为选中。例如:按下【Alt+C,空格,空格,w】 为选中光标所在单词。(不过使用IDEA原生的Ctrl+W更为方便)

4. IdeaVim插件

另一个个人感觉非常好用的插件是IdeaVim,这个插件的作用是在Intellij中模拟Vim的操作方式。咋看上去,似乎是一个只有Vim的狂热玩家才会选用的插件。但事实上这个插件提供了一个非常实用功能,让它成为了我们这种普通开发者居家旅行的必备选择。这个功能是,IdeaVim允许设置一个快捷键来激活或关闭IdeaVim模拟器,而且在激活或关闭时,会自动切换Keymap。也就是说,你在输入大段代码时,可以使用自己惯用的Keymap。在阅读代码,小范围修改,或者进行一些重复性修改时,可以切换到Vim模式。甚至你可以把“关闭IdeaVim”看做“增强的Vim插入模式”。有了Vim普通模式下的各种功能,就可以省去记忆大量快捷键的苦恼,而且本来熟悉vim使用,是程序员迟早都要遇到的问题。

安装配置:
在Setting -> Plugins -> Browse repositories中查找IdeaVim插件安装即可。首次使用时,它会问你以哪个Keymap为基础创建Vim的Keymap。建议使用Default,否则一些自定义的快捷键可能会与Vim普通模式下一些按键冲突。然后在Setting -> Keymap中查找Vim Emulator,设定激活/关闭IdeaVim模拟器的快捷键,我设定为Ctrl+;(分号)。注意你需要在你惯用Keymap和名为Vim的Keymap上分别作同样的设定(否则进入了Vim模拟器就退不出去,或者退出去了就进不回来)。默认Vim Emulator按键是Ctrl+Alt+V,会覆盖掉很常用的Extract Local Variable(抽取局部变量)快捷键,因此强烈建议重设。另外,个人感觉AceJump比Vim常用的定位跳转(f/F, /查找等)好用,建议设定其在Vim Keymap中的快捷键。

不熟悉Vim的朋友可在 http://sourceforge.net/projects/vimcdoc/files/pdf-manual/1.8.0/ 找到中文文档(对应Vim版本7.3)。下面随手列一些在IDEA下常用且有用的操作(也就是IDEA本身做起来不方便的),这些操作均在Vim普通模式下发起,注意大小敏感,大写的字母可以按shift+字母输入(不知道什么是普通模式的朋友请看Vim文档):

1. 在普通模式下输入 :s/正则表达式/替换文本/g 可以在当前行范围内查找替换。(在正常的IDEA中需要选中当前行后在当前选区查找替换)

2. 在普通模式下输入 小数点 将在当前光标位置重复上一次修改操作。例如你在某一行进行了上述的查找替换,如果立即需要在另一行做同样操作,把光标移动到该行按小数点即可。

3. yyp 复制当前行。 yy10p 复制当前行10次

4. u 撤销修改 / Ctrl+R 重做修改

5. q加任何单个数字或字母,录制后续操作,记录到名为该数字或字母的宏(Macro)中。在录制状态下按q结束录制。@加某个已录制的宏名(单个数字或字母),回放宏。录制的宏只要不被覆盖,会自动保存。重启IDEA后仍然有效。(在正常的IDEA中使用宏需要进行菜单操作,不甚方便)

6. daw 删除一个单词,d$删除至行尾,d0删除至行首(包括缩进),d^删除至行首(保留缩进),dd删除当前行。删除后按p可以复制删除内容。

7. J 直接把下一行连接到本行末尾,去除缩进

8. % 跳到匹配的括号

9. 10ib<ESC> 插入10个b。(数字)i/a/o/O(字符串)<ESC> 可插入n个重复字符串,i在光标前插入,a在光标后插入,o在下一行插入,O在上一行插入。注意在IDEA默认情况下输入“i字符”后会弹出自动补全菜单,需要多按一下ESC取消掉补全菜单。

10. 在一个数字上按ctrl+a,可将该数字加1.  按ctrl+x可将数字减1. 按(数字)ctrl+a,可将光标数字加上输入的数字。

11.  ~ - 将光标下的字母改变大小写。 g~aw - 改变当前单词的大小写。gU<空格> - 当前字母改大写。gu<空格> - 当前字母改小写。 gUaw - 当前单词改大写。 guaw - 当前单词改小写。 在字符串前面的引号上 gUf" - 字符串改大写。

12. 行号G - 直接移动到某行。(使用IDEA的Ctrl+G会弹出对话框,且移动到的那行会自动居中,颇为眼花)

13. H - 光标移动到屏幕第一行。 L - 光标移动到屏幕最后一行。 M - 光标移动到屏幕中间。 zz - 光标所在行居中。

当然这里只是列出一些简单的常用操作。Vim模拟器的玩法远远不止上述这些,有兴趣但还不熟悉Vim的朋友阅读文档之余也可以看看《Pratical VIM》这本书 http://www.itpub.net/forum.php?mod=viewthread&tid=1734891

5. Shortcut Translator插件

从其他IDE转到Intellij时学习快捷键的插件。安装后,按Ctrl+Shift+K调出快捷键翻译对话框,选定你惯用的IDE keymap和需要学习的keymap,按下惯用keymap的快捷键,即可看到学习keymap上的对应快捷键。



eclipse的ctrl+o 对应 IDEA default keymap的ctrl+F12

夜深,暂时先写这些,后面想起来再补上
  • 描述: acejump
  • 大小: 19.4 KB
  • 大小: 4.2 KB
  • 大小: 12 KB
10
3
分享到:
评论
10 楼 yhxf_ie 2016-05-03  
Ace Jump和IdeaVim,您都是如何安装的啊?在intellij Idea->settings->plugins 木有搜索到这些插件
9 楼 shuiranyue 2014-01-23  
感谢作者,正想学习vim,能结合着平时的开发工具来学习,实在是太有爱了。
8 楼 parthenon 2013-12-04  
非常不错,期待更多这样的文章。
7 楼 yulan6248 2013-06-29  
恩 很好的tips; ideavim本人一直在用,但是ace jump 是第一次看到。个人一直很难习惯这个操作模式 - vim下也有类似的插件,但是也不是那么火。个人感觉虽然表面看比vim提供的motion keys来的快,但是对于非常熟练的vim user来说的话这个插件反而破坏了vim所提倡的flow; 毕竟代码是代码 不是像vimperator这样follow links, 使用这样的系统意味着很多operations on text/block objects变得形同虚设。而且可能也不太适合新手积累使用vim的经验吧。。呵呵 一点个人的看法
6 楼 langyahuashi 2013-02-25  
非常不错,最后一个快捷键翻译真的很好。。
5 楼 evan8126 2013-02-25  
funidudu 写道
请问你的 intellij是哪个版本,在win8下有输入法与编辑器不兼容的问题吗?

应该是微软自带输入法的问题,换个输入法就好了
4 楼 kidneyball 2013-02-25  
funidudu 写道
请问你的 intellij是哪个版本,在win8下有输入法与编辑器不兼容的问题吗?


12 Ultimate。但我没在win8下跑过……
3 楼 funidudu 2013-02-25  
请问你的 intellij是哪个版本,在win8下有输入法与编辑器不兼容的问题吗?
2 楼 rox 2013-02-25  
非常感谢!
1 楼 air_fans 2013-02-24  
不错,感谢分享

相关推荐

    IntelliJ IDEA使用教程

    Idea优化配置部分则介绍了如何通过修改启动参数、插件和运行设置来提高IDE的性能。 总结来说,IntelliJ IDEA通过其先进的特性、强大的功能集和高度可配置的环境,为Java开发者提供了一个高效、智能的工作平台。掌握...

    IntelliJ IDEA 使用教程

    - **版本分类**:IntelliJ IDEA提供两个主要版本——Community Edition(社区版)和Ultimate Edition(旗舰版)。社区版免费且开源,适用于纯Java应用开发;旗舰版则需付费购买许可证,提供了对更多现代技术栈的支持...

    idea-IntelliJ IDEA详细配置和使用教程 - CSDN博客1

    这只是IntelliJ IDEA配置和使用的一小部分,还有更多高级功能如版本控制集成、调试工具、插件管理等等待探索。熟练掌握这些配置和技巧,可以显著提升开发效率,让编程更加愉快。记得持续关注和更新设置,以适应不断...

    idea插件JVM内存工具JProfiler11

    本文将详细介绍如何使用Idea中的JProfiler11插件,以及其在优化Java应用内存方面的功能和技巧。 首先,JProfiler11是一款专业级别的Java性能分析工具,它能够对JVM进行深入的内存和CPU分析。通过集成到Idea中,...

    【idea全局搜索】intellij idea 怎么全局搜索

    IntelliJ IDEA还提供了结构搜索和替换功能,允许你根据代码结构进行搜索和替换,例如,寻找所有未使用的变量或特定模式的方法调用。这对于重构和代码审查特别有用。 5. **使用场景** - **调试**:当需要找到引发...

    IntelliJ IDEA 简体中文专题教程 最新版

    本教程将深入讲解IntelliJ IDEA的最新功能和使用技巧。 首先,让我们从基础入手。"IntelliJ IDEA入门图文教程整理"系列文件提供了对IDE的基本操作介绍,包括安装与启动、界面布局、项目创建、文件管理等方面。在...

    PMDPlugin for IDEA IDEA PMD插件

    PMDPlugin for IDEA是一款针对IntelliJ IDEA(简称IDEA)开发的插件,它的主要功能是集成PMD工具,帮助开发者在编码过程中实时检测并指出项目中的潜在问题。PMD是一款开源的静态代码分析器,能够发现代码中的不规范...

    IntelliJIDEA快捷键及使用技巧

    本资源主要针对IntelliJ IDEA的快捷键和使用技巧,旨在帮助开发者提升编码效率,尤其适合初学者快速上手。如果你已经习惯于Eclipse或其他开发工具,可能会需要一些时间来适应IntelliJ IDEA的独特工作流。 1. **...

    intellij IDEA使用文档

    8. **插件系统**: IntelliJ IDEA拥有庞大的插件库,通过安装插件可以扩展其功能,如Lombok支持、Docker集成、REST客户端等。 9. **代码导航**: IDE提供多种方式快速跳转到类、方法或变量定义,如"Go to Declaration...

    IntelliJ IDEA自定义皮肤

    在编程世界中,IntelliJ IDEA是一款广泛使用的Java集成开发环境(IDE),因其强大的代码补全、重构工具和高度可定制性而备受青睐。其中,自定义皮肤是提升开发者个性化体验的一个重要方面。通过调整界面皮肤,用户...

    高清彩版 Eclipse转移到IntelliJ IDEA手册

    2. **丰富的插件生态系统**:IntelliJ IDEA 拥有庞大的插件市场,支持多种语言和框架,可以满足不同开发者的需求。 3. **高效的重构工具**:IntelliJ IDEA 提供了强大的重构工具,可以帮助开发者快速重构代码结构,...

    IntelliJ IDEA 简体中文专题教程.zip

    本简体中文专题教程将带你深入理解和掌握IntelliJ IDEA的各项功能,助力你的编程生涯。 1. **安装与配置** - 下载与安装:从官方网站获取最新版本的IntelliJ IDEA,并按照步骤进行安装。 - 配置JDK:确保系统已...

    intellij idea开发工具文档

    ### IntelliJ IDEA 开发工具知识点详解 #### 一、JetBrains IntelliJ IDEA 9.0.4 简介 ...通过上述详细介绍的知识点,相信开发者们能够更加熟练地掌握 IntelliJ IDEA 的使用技巧,从而大幅提升工作效率和代码质量。

    IntelliJ IDEA详细配置和使用教程.docx

    IntelliJ IDEA是一款深受开发者喜爱的Java集成开发环境,以其高效、智能的代码补全、强大的调试工具和丰富的插件库而闻名。本教程将详细介绍IntelliJ IDEA的配置和使用技巧,帮助开发者提高开发效率。 首先,我们来...

    IntelliJ IDEA 使用教程2017

    本文将详细讲解IntelliJ IDEA的安装、配置、使用技巧以及与Maven、Tomcat、Git和SVN等工具的集成方法。 一、安装与配置 在开始使用IntelliJ IDEA之前,首先要完成安装程序。在安装过程中,用户可以选择安装目录,并...

    IntelliJ idea图文教程pdf

    - **Plugins**: 插件系统,可以扩展IDEA的功能,包括添加语言支持、工具插件和框架特定插件等。 ### 版本控制 IntelliJ IDEA提供对各种版本控制系统如Git和SVN的原生支持。教程指导用户如何安装和配置这些工具,...

    Intellij IDEA的快捷键、常用技巧和相关设置

    IntelliJ IDEA是一款深受开发者喜爱的...以上只是IntelliJ IDEA众多特性的一小部分,实际使用中,应根据具体需求不断探索和学习。通过熟练掌握这些技巧,开发者能更有效地利用IntelliJ IDEA进行开发,提高工作效率。

    IntelliJ-IDEA-Tutorial, IntelliJ IDEA 简体中文专题教程.zip

    7. **插件扩展**:讲解IntelliJ IDEA丰富的插件库,如何安装和使用第三方插件,如Lombok支持、REST客户端、Docker集成等。 8. **框架与库支持**:如Spring框架、Spring Boot、Hibernate、MyBatis等的配置和使用,...

    Intellij idea中文教程适合初级

    本教程针对初级用户,旨在帮助他们快速掌握IntelliJ IDEA的基本操作和核心功能。 一、安装与启动 "intellij_install_guide.pdf"应该会详细指导如何下载并安装IntelliJ IDEA的中文版本。通常,你需要访问官方网站...

    Intellij+IDEA2017入门教程

    为了提高开发效率,IntelliJ IDEA还支持一些常用的快捷键和技巧。这包括了代码的快速导航、代码片段的快速插入等。此外,一些高级功能,比如JSP实时编译、搜索功能的优化、自动导入依赖等,也可以通过设置来实现。 ...

Global site tag (gtag.js) - Google Analytics