在idea中如何使用 Ace Jump插件

版权声明:@徐小冠 https://blog.csdn.net/weixin_42114097/article/details/81880588

 [一]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更为方便)

 [二]  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
 

<欢迎大家留言----->个人微信>

猜你喜欢

转载自blog.csdn.net/weixin_42114097/article/details/81880588
ACE