改善编程体验: IdeaVimExtension介绍

简介: # 改善编程体验: IdeaVimExtension介绍 ## 动机 Intellij IDEA是个非常优秀的开发环境,提供了相当好用的快捷键,让用户有机会脱离鼠标来使用IDE. 另外官方还提供了IdeaVim插件,熟悉vim的用户可以使用几乎与vim相同的方式操作IDEA的编辑器来编写代码.

改善编程体验: 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_USimage-20190320104934233.png输入法
    • macOS需要开启ABCimage-20190320104604867.png或en_USimage-20190320104634422.png输入法
    • 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来使用:

目录
相关文章
ly~
|
5月前
|
存储 算法 编译器
游戏开发中,C 语言的性能优势体现在哪些方面?
在游戏开发中,C 语言凭借其对硬件的直接访问和内存操作的精准控制,能够显著提升性能。它允许开发者手动管理内存,优化数据存储和读取,充分利用显卡等硬件资源,实现流畅的图形渲染和音效处理。作为一种接近底层的语言,C 语言具有高效的执行速度,适用于物理引擎和碰撞检测等高性能需求模块,并且提供了丰富的运算符和数据类型,便于实现高效的算法。此外,C 语言代码具有良好的可移植性和跨平台性,支持多种操作系统和硬件平台,减少了多平台发布的开发成本。编译器提供的优化选项和手动代码优化的灵活性进一步提升了游戏的整体性能。
ly~
214 5
|
5月前
|
前端开发 JavaScript UED
前端性能优化:打造流畅用户体验的秘诀
【10月更文挑战第20天】前端性能优化:打造流畅用户体验的秘诀
63 0
|
6月前
|
开发工具 Android开发 UED
探索移动应用开发之旅:打造流畅用户体验的秘诀
【9月更文挑战第18天】在数字化时代,移动应用成为连接用户与服务的关键桥梁。本文将深入探讨移动应用开发的精髓,从选择合适的开发工具到设计直观的用户界面,再到优化性能和提升用户体验的策略。我们将以一个简单的代码示例来展示如何实现这些目标,引导你步入高效、创新的移动应用开发之路。
|
7月前
|
开发者 图形学 UED
深度解析Unity游戏开发中的性能瓶颈与优化方案:从资源管理到代码执行,全方位提升你的游戏流畅度,让玩家体验飞跃性的顺滑——不止是技巧,更是艺术的追求
【8月更文挑战第31天】《Unity性能优化实战:让你的游戏流畅如飞》详细介绍了Unity游戏性能优化的关键技巧,涵盖资源管理、代码优化、场景管理和内存管理等方面。通过具体示例,如纹理打包、异步加载、协程使用及LOD技术,帮助开发者打造高效流畅的游戏体验。文中提供了实用代码片段,助力减少内存消耗、提升渲染效率,确保游戏运行丝滑顺畅。性能优化是一个持续过程,需不断测试调整以达最佳效果。
229 0
|
10月前
|
算法 安全 开发工具
DevChat一网打尽所有大模型——给你全新的编程体验
DevChat一网打尽所有大模型——给你全新的编程体验
101 0
|
人工智能 IDE 开发工具
高效工作高效学习
本文部分整理自法文书 《Comment travailler plus efficacement》
93 0
|
机器学习/深度学习 人工智能 自然语言处理
如何用ChatGPT高效完成工作
都2023年了,是时候让ChatGPT来帮我们完成工作了!本文将教你如何用ChatGPT高效地完成工作,并提供相关入门技巧。希望阅读本文后,大家都能轻松搞定工作,开开心心摸鱼。
373 0
如何用ChatGPT高效完成工作
|
开发框架 并行计算 .NET
改善C#程序的157个建议——建议84学习笔记:使用PLINQ
改善C#程序的157个建议——建议84学习笔记:使用PLINQ
146 0
|
存储 运维 资源调度
阿里巴巴如何改善开发人员在 K8s 上的体验?
从 Kubernetes 到“以应用为中心”的美好未来之间,全世界的 PaaS 工程师其实都在期待一项全新的技术能够弥补这之间的鸿沟。阿里云原生应用平台团队的做法是,通过为应用“建模”的方式来解决这个问题,这也正是 Open Application Model (OAM) 开源项目得以创建的重要目的。
阿里巴巴如何改善开发人员在 K8s 上的体验?
|
弹性计算 算法 Java
【用户体验优化课题(二)】你若义无反顾,我必全力以赴
### 1、从购买ECS谈起 弹性计算新版[ECS购买控制台](https://ecs-buy.aliyun.com/) 为用户新购Ecs服务器提供了便捷的交互方式与丰富的功能选择。 - 用户最长需要经过5个页面的跳转,针对20项左右的配置选择,定制化自身所需的ECS云服务器。
2358 0