改善编程体验: IdeaVimExtension介绍

动机

Intellij IDEA是个非常优秀的开发环境,提供了相当好用的快捷键,让用户有机会脱离鼠标来使用IDE.

另外官方还提供了IdeaVim插件,熟悉vim的用户可以使用几乎与vim相同的方式操作IDEA的编辑器来编写代码.但是作为非英文用户,却有一个"输入法切换"的痛点.

考虑如下两种情况:

  1. 编辑器中在insert模式下,编写了一段中文注释,然后需要回到normal模式移动光标到其他位置继续编写代码.
  2. 正在编辑器normal模式下操作,此时突然有紧急邮件或者钉钉消息需要回复,输入法切换为中文回复后再回到编辑器.

类似上面两种场景,当回到normal模式编辑器时,我们都不得不人工操作一次输入法切换,即使您已经为输入法切换设置了非常好用的快捷键(按一下Shift),这个操作依然是恼人的,经常会忘记,输入几个字符后才发现,这可能带来误操作.

我们的期望只有一个:

在任何情况下,进入normal模式,输入法必是英文状态.

因此我基于IdeaVim的扩展点开发了一个帮助切换输入法的小插件IdeaVimExtension

IdeaVimExtension安装使用

  1. 如果您已经是IdeaVim的用户,那么直接在Intellj IDEA的插件中心搜索IdeaVimExtension进行安装.或者到IdeaVimExtension插件主页进行下载安装.

IdeaVimExtension是依赖IdeaVim的,需要事先安装IdeaVim

  1. 确保你的操作系统已经开启了英文输入法

    • Windows需要开启en_US输入法
    • macOS需要开启ABC或en_US输入法
    • Linux 支持
  2. 安装重启IDEA后,打开任意代码编辑器在normal模式下输入如下两个命令来激活IdeaVimExtension插件

    • :set keep-english-in-normal : 在normal模式保持英文状态
    • :set keep-english-in-normal-and-restore-in-insert : 在normal模式保持英文状态,并在回到insert时恢复输入法到原来的状态.例如,编写一段中文注释,用中文输入法写了一段文字,进入normal模式移动光标到下一行,再回到插入模式继续使用中文编辑.
  3. 上面两个命令在每次IDEA重启后都需要重新输入,也可以通过在用户目录下添加 .ideavimrc文件,将命令添加到该文件中,这样在IDEA重启时可以自动执行该文件中的指令.另外,该文件中也可以添加其他受支持的vim指令.类似vim的.vimrc文件.

接下来就可以愉快的使用全键盘操作来编写代码了.

注意: 该插件仅支持macOS和Windows操作系统,不支持Linux.

如果有哪位同学可以提供Linux下切换输入法的动态库,我就可以支持了.

额外一点分享

相信很多同学都是使用苹果电脑的.苹果电脑的键盘设计对vim用户越来越不友好了.对vim用户来说ESC是个非常高频的按键.但是苹果键盘的ESC设计比较小,且位置偏远,有bar的新MBP的ESC是虚拟的基本没有任何按键反馈.我的处理方法是使用karabiner软件将ESC和不常用的~进行交换.

另外键盘上的方向键,新MBP的上下被缩小到一个按键的面积偏小,且需要移动右手去按,对编写代码这样的文字工作是不友好的在使用vim编辑器是可以通过hkjl来替换,但也总有非vim环境需要使用方向键,比如IDEA的Project视图等.我的处理方法是设置Ctrl+hkjl来替换方向键,为了纠正习惯将原始的方向键禁用了.

最后CapsLock键用处不大,有时会误按造成vim-normal模式下的误操作,所以我将该键跟左下角的Ctrl交换了.这样既改善了Ctrl的按键体验,也可以避免误按CapsLock

Windows用户请自行寻找键位映射工具.

在附件中提供我的kararbiner配置文件,可以直接copy到~/.config/karabiner/karabiner.json来使用:

改善编程体验: IdeaVimExtension介绍相关推荐

  1. 改善编程体验: IdeaVimExtension介绍 1

    改善编程体验: IdeaVimExtension介绍 动机 Intellij IDEA是个非常优秀的开发环境,提供了相当好用的快捷键,让用户有机会脱离鼠标来使用IDE. 另外官方还提供了IdeaVim ...

  2. 欧洲进出口银行_欧洲对开放银行的推动如何迫使银行应用改善用户体验

    欧洲进出口银行 by Michael Gardner 通过迈克尔·加德纳 欧洲对开放银行的推动如何迫使银行应用改善用户体验 (How Europe's push for Open Banking is ...

  3. 如何通过文档改善用户体验和客户关系

    文档对你的员工和客户来说都是一个宝贵的信息来源.你策划和分享的每一个教程."如何做 "的文章和指南都可以改善用户体验和客户关系. 在这个数字时代,每个人都希望立即得到答案,很少或没 ...

  4. 精益设计: 设计团队如何改善用户体验

    <精益设计: 设计团队如何改善用户体验> 基本信息 原书名:Lean UX: Applying lean principles to improve user experience 作者: ...

  5. 【pmcaff】产品经理必知改善用户体验的基本方法

    点击上方 "公众号" 可以订阅哦! 如果说影响应用排名的最大因素是什么?那一定是用户体验了.再也没有什么比它更重要的了,但是很多开发商在忙着开发和发布新应用的时候,往往会忽略掉这个 ...

  6. 设计电商网站必看,如何改善用户体验

    电子商务是一个复杂的系统,很多小伙伴在设计电商网站的时候会遇到不少的问题.作为电子商务的典型模式之一,B2C网上零售网站要考虑的因素很多,有时候很多意想不到的因素都可能决定一个用户最终是否在该网站完成 ...

  7. 精华帖:最全的编程自学网站介绍,白嫖

    1.B站 bilibili.com 哔哩哔哩(bilibili)现为国内领先的二次元文化社区,该网站于2009年6月26日创建,被粉丝们亲切的称为"B站". 根据数据公司Quest ...

  8. 客户体验改善计划_改善媒体体验

    客户体验改善计划 by cedric amaya 通过塞德里克·阿玛亚 改善媒体体验 (Improving the Medium Experience) 一次一个浏览器扩展. (One browser ...

  9. 如何使用Web数据改善客户体验(CX)?

    客户体验(CX),也叫用户体验.顾名思义,就是用户使用产品/服务或者品牌互动后的最直接的感受.这种感受包括:操作习惯.使用后的心理想法等等. 虽然客户体验肯定是在业务中开始的,但内部的努力只会使您半途 ...

最新文章

  1. html之元素与元素的形成
  2. 线程池(领导者-追随者,生产者-消费者等)小结
  3. 光通信仿真软件Optisystem 15.0 学习版
  4. tomcat7官网下载
  5. python epub转txt_怎么将很多个TXT合并成epub?
  6. TortoiseSVN中Branching和Merging实践
  7. Transformer论文阅读(一):CoTr: Efficiently Bridging CNN and Transformer for 3D Medical Image Segmentation
  8. 《腾讯网UED体验设计之旅》
  9. 计算机常考的快捷键,电脑常见快捷键大全
  10. mac用户开发树莓派保姆级教程(一)系统的烧录
  11. BAT的“江湖地位”毋庸置疑,但互联网公司这些奇葩绰号,你知道吗?
  12. 你还不知道什么是市场占有率?
  13. 归一法的计算方法讲解_数学归一法是什么能举个具体例子吗
  14. MATLAB与高等数学--导数计算与极值的求解
  15. 八年级计算机教案下册,八年级信息技术下册教案
  16. Lenovo Y480 Ubuntu 12.04 x64 安装NVIDIA GT 650M 驱动
  17. 智慧商贸进销存—新增日常支出
  18. c语言画爱心 带字,如何用C语言画一个心形
  19. Struts 2再爆高危漏洞CVE-2017-5638 绿盟科技发布免费扫描工具及产品升级包
  20. linux内核源码实战_3.2理解设备驱动和文件系统

热门文章

  1. 天涯明月刀7月4号服务器维护,7月24日服务器例行维护公告(已完成)
  2. c语言入门1.2.3 百度云,C语言入门1.2.3--一个老鸟的C语言学习心得(附光盘)
  3. CSS的再深入2(更新中···)
  4. Red Hat Enterprise Linux ISO 全镜像下载
  5. shell编程(二)
  6. C++中运行一个程序的内存分配情况及qt中的内存管理机制
  7. JAVA-【将字符串中的英文括号替换为中文括号】
  8. Vue-cli构建步骤
  9. 基于搜狐云景的java语言开发技巧
  10. r语言remarkdown展示图_为什么Markdown R有较大概率成为科技写作主流? ← 阳志平的个人网站::技术...