动机
Intellij IDEA 是个非常优秀的开发环境,提供了相当好用的快捷键,让用户有机会脱离鼠标来使用 IDE.
另外官方还提供了 IdeaVim 插件,熟悉 vim 的用户可以使用几乎与 vim 相同的方式操作 IDEA 的编辑器来编写代码.但是作为非英文用户,却有一个"输入法切换"的痛点.
考虑如下两种情况:
- 编辑器中在 insert 模式下,编写了一段中文注释,然后需要回到 normal 模式移动光标到其他位置继续编写代码.
- 正在编辑器 normal 模式下操作,此时突然有紧急邮件或者钉钉消息需要回复,输入法切换为中文回复后再回到编辑器.
类似上面两种场景,当回到 normal 模式编辑器时,我们都不得不人工操作一次输入法切换,即使您已经为输入法切换设置了非常好用的快捷键(按一下 Shift),这个操作依然是恼人的,经常会忘记,输入几个字符后才发现,这可能带来误操作.
我们的期望只有一个:
在任何情况下,进入 normal 模式,输入法必是英文状态.
因此我基于 IdeaVim 的扩展点开发了一个帮助切换输入法的小插件IdeaVimExtension
IdeaVimExtension 安装使用
-
如果您已经是 IdeaVim 的用户,那么直接在 Intellj IDEA 的插件中心搜索
IdeaVimExtension进行安装.或者到IdeaVimExtension插件主页进行下载安装.IdeaVimExtension 是依赖 IdeaVim 的,需要事先安装 IdeaVim
-
确保你的操作系统已经开启了英文输入法
-
Windows 需要开启 en_US
输入法 -
macOS 需要开启 ABC

或 en_US
输入法 -
Linux 需要使用小企鹅输入法(Fcitx)
-
-
安装重启 IDEA 后,输入法自动切换功能会默认启用
也可以通过打开任意代码编辑器在 normal 模式下输入如下两个命令来激活 IdeaVimExtension 插件
:set keep-english-in-normal: 在 normal 模式保持英文状态(这也是默认启用的状态):set keep-english-in-normal-and-restore-in-insert: 在 normal 模式保持英文状态,并在回到 insert 时恢复输入法到原来的状态.例如,编写一段中文注释,用中文输入法写了一段文字,进入 normal 模式移动光标到下一行,再回到插入模式继续使用中文编辑.
-
上面两个命令在每次 IDEA 重启后都需要重新输入,也可以通过在用户目录下添加
.ideavimrc文件,将命令添加到该文件中,这样在 IDEA 重启时可以自动执行该文件中的指令.另外,该文件中也可以添加其他受支持的 vim 指令.类似 vim 的.vimrc文件. -
如果要关闭输入法切换功能直接直接输入对应的
:set nokeep-english-in-normal[-and-restore-in-insert]
接下来就可以愉快的使用全键盘操作来编写代码了.
额外一点分享
相信很多同学都是使用苹果电脑的.苹果电脑的键盘设计对 vim 用户越来越不友好了.对 vim 用户来说ESC是个非常高频的按键.但是苹果键盘的ESC设计比较小,且位置偏远,有 bar 的新 MBP 的ESC是虚拟的基本没有任何按键反馈.我的处理方法是使用karabiner软件将ESC和不常用的~进行交换.
另外键盘上的方向键,新 MBP 的上下被缩小到一个按键的面积偏小,且需要移动右手去按,对编写代码这样的文字工作是不友好的在使用 vim 编辑器是可以通过hkjl来替换,但也总有非 vim 环境需要使用方向键,比如 IDEA 的 Project 视图等.我的处理方法是设置Ctrl+hkjl来替换方向键,为了纠正习惯将原始的方向键禁用了.
最后CapsLock键用处不大,有时会误按造成 vim-normal 模式下的误操作,所以我将该键跟左下角的 Ctrl 交换了.这样既改善了Ctrl的按键体验,也可以避免误按CapsLock
Windows 用户请自行寻找键位映射工具.
v2ex 不能上传附件,所以需要我的 karabiner 配置文件的朋友可以发邮件给我: [email protected]
该文初始发表在hadix.xyz