本文将介绍IDEA中的IdeaVim插件提供的EasyMotion拓展插件。

什么是EasyMotion?

EasyMotion起源是Vim的一个插件,正如它的名字所表明的一样,EasyMotion可以让你在Vim中以更简单的方式移动。

一旦熟练掌握EasyMotion的使用,你将会惊讶自己使用键盘移动光标的速度竟然可以得到如此大的提升!

怎么玩EasyMotion?

安装

只需要执行下面两步:

  • IDEA插件市场去安装两个插件: IdeaVim-EasyMotion、 AceJump

  • .ideavimrc中加一行代码:Plug 'easymotion/vim-easymotion'

然后重启一下IDEA,就可以开始愉快的使用EasyMotion了。

了解下EasyMotion的原理(重要)

在使用EasyMotion之前,了解一下它工作的大致原理,会让你对它建立一个初步的概念,这对于后续使用它是很有帮助的。

在使用EasyMotion之前,你需要通过执行一个命令来激活它。EasyMotion的作者们把这个命令称作leader。默认的leader\,但是你可以自定义其他更适合自己习惯的键位作为leader

在使用leader激活EasyMotion之后,你就需要告诉它你想要做什么动作。EasyMotion的作者们把这称作motion。比如w表示触发单词移动动作,s表示触发搜索移动动作等等。

在你告诉EasyMotion想要做什么动作之后,它会高亮所有可能的跳转目标出来,然后,你就可以一键直接跳转到目标位置。

放一张官网的图,可以更形象的了解上面的文字:

上图使用的命令是:\ssfk。这条命令所代表的含义是:\激活EasyMotion,紧跟着的s表示触发搜索移动动作,第二个s表示搜索 s 这个字符,最后的fk表示对应的跳转目标。

是不是很好理解?迫不及待的想要尝试下!

基本使用

这里介绍一下EasyMotion基本特性的使用。从这个简单的例子中你就能体会到EasyMotion的强大。

(下面例子中<crusor>表示光标所在位置)

<cursor>Lorem ipsum dolor sit amet.

按下<Leader><Leader>w来触发单词移动动作 w,当这个移动动作被触发时,文本将会更新(正如上面动态图上所看到的)。

<cursor>Lorem {a}psum {b}olor {c}it {d}met.

此时,按下 c 会跳到单词 “sit” 的开头位置,如下:

Lorem ipsum dolor <cursor>sit amet.

同样,如果你想要寻找 o ,你可以使用 f 移动动作。按下<Leader><Leader>fo,所有的 o 字符都将高亮显示:

<cursor>L{a}rem ipsum d{b}l{c}r sit amet.

此时,按下 b 会跳到第二个 o ,如下:

Lorem ipsum d<cursor>olor sit amet.

例子演示完毕。

你可能会好奇为什么每次触发一个动作之前,为什么都需要按下两次<Leader>

原来是作者考虑到默认的单个<Leader>可能与你安装的其他插件所使用的激活按键产生冲突,所以特意把默认的触发动作变成了<Leader><Leader>

以上其实是官方给出的一个示例。主要演示了两个EasyMotion最基本的特性:单词移动动作w、查找移动动作f

这两个动作很简单,但却非常实用,大部分的移动都可以靠这两个动作实现。

当然,如果你想要尝试更高级的技巧,可以参考 EasyMotionGithub 仓库官方文档:easymotion.txt

最后

我的建议是,通过一次密集的突击训练,将<Leader><Leader>触发键,以及上面两个移动动作牢牢记住。

然后,再通过在日常生活工作中日复一日的大量使用,最终内化成肌肉记忆。

希望以上的内容能帮助你提升效率。

【Vim】IdeaVim高级玩法之EasyMotion插件相关推荐

  1. Vim的几个高级玩法

    文章目录 vim的几种模式 扩展命令模式命令: 命令模式高频命令: 命令模式进阶命令: vim高级玩法 小结:  在Linux中编辑文件的场景非常之多,掌握一些关键命令和技巧.能够大大提高效率,使用体 ...

  2. (保姆教程及高级玩法及坑)微信同声传译插件-语音识别

    目录 一.背景 二.效果 ​编辑 三.保姆级教程 3.1 小程序后台添加插件:微信同声传译 3.1.1 设置 -> 第三方设置 -> 添加插件 3.1.2 搜索插件 3.1.3 成功添加后 ...

  3. SkyWalking之高级玩法

    导读 SkyWalking是基于javaagent的两大字节码操作工具之一的Byte Buddy实现的无侵入APM(application performance monitor) 系统,目前项目在A ...

  4. 【ASP.NET Core】依赖注入高级玩法——如何注入多个服务实现类

    依赖注入在 ASP.NET Core 中起中很重要的作用,也是一种高大上的编程思想,它的总体原则就是:俺要啥,你就给俺送啥过来.服务类型的实例转由容器自动管理,无需我们在代码中显式处理. 因此,有了依 ...

  5. 12面魔方公式图解法_【高级篇】(三)三阶魔方CFOP高级玩法之——F2L

    一.F2L这一步要干什么 1.先了解一下"棱角对"和"槽位"的概念 棱角对:即由一个棱块和一个角块构成,是F2L的基本单元(共四组) 槽位:给"棱角对 ...

  6. 涨知识!原来华为手机摄像头还有这些高级玩法,学会轻松提高工作效率

    众所周知,华为手机广受用户的喜爱,主要是因为华为手机的实用性强,并且拍照能力也是世界顶尖水平.不过你知道吗?拍照与办公融合,将解锁华为手机摄像头的高级玩法,今天笔者就分享两个,不仅有趣还非常实用的摄像 ...

  7. java enum枚举类的用法以及高级玩法

    enum(枚举)类介绍 java枚举类是一组预定义常量的集合,使用enum关键字声明这个类,常量名称官方建议大写 1.enum类基本用法 举一个常见的例子,例如星期就可以描述为一个枚举类,如下 pub ...

  8. vnc移植_【安富莱】开源原创高级玩法,用F429接SDRAM虚拟远程VNC桌面

    [安富莱]开源原创高级玩法,用F429接SDRAM虚拟远程VNC桌面说明: 0. 这个项目的可玩性极高,可以做很多有意思的应用.做一些远程智能控制尤其方便,省去了学习html,xml,js等麻烦,且无 ...

  9. 魔方cfop公式软件_【高级篇】(三)三阶魔方CFOP高级玩法之——F2L

    一.F2L这一步要干什么 1.先了解一下"棱角对"和"槽位"的概念 棱角对:即由一个棱块和一个角块构成,是F2L的基本单元(共四组) 槽位:给"棱角对 ...

最新文章

  1. CNN、Transformer、MLP架构的经验性分析
  2. 只需两行代码,2080Ti 就能当 V100用,这个炼丹神器真牛!
  3. python隐式调用方法_Python为什么不隐式实现self
  4. 笔记-项目管理基础知识-复习要点
  5. VTK:Utilities之CommandSubclass
  6. window.onscroll
  7. access 如何使用dolby_Access/VBA/Excel-Access表及字段创建-03
  8. 聊聊推荐系统的高阶特征交叉问题
  9. 4)lsof linux命令,***Linux命令实时监测系统(top,htop,iotop,lsof,tcpdump,netstat,vmstat,iostat)...
  10. 云图说|ASM灰度发布,让服务发布变得更敏捷、更安全
  11. android 抓取webview中的所有图片_Python|任意网页中的所有图片下载
  12. 解决npm install安装慢的问题
  13. 征途服务管理器显示不出启动服务器,征途服务器管理器连接数据库
  14. ARM开发6.3.1 基础实训( 1 ) 单个数码 LED 的显示输出系统设计( 1)--LPC21XX
  15. 一篇好文之Android文本软键盘全解
  16. list集合排序-lambda表达式实现
  17. windows的hosts文件在哪?
  18. 广东英语高考怎么计算机,2019广东高考英语听说考试大纲出炉!附三大题型得分套路!...
  19. python点图_Python | 点图
  20. 交换机虚拟化和堆叠的区别_网工知识角|一分钟记熟NFV网络功能虚拟化技术介绍...

热门文章

  1. 【美团】面试真题_2021年
  2. 远程服务器后台运行命令
  3. 美国著名报刊杂志链接
  4. 前台系统(前台商城首页)
  5. 正则表达式及限制字数
  6. linux权限命令chgrp,Linux常用命令之用户权限管理chmod、chown、chgrp、umask命令讲解...
  7. [NCTF2019]Fake XML cookbook
  8. 光纤上传播的光信号是0和1吗?
  9. FFmpe写一个多线程播放器1 基础逻辑和队列定义
  10. 删除PPT所有页面中同一个位置的图片