背景简介
对于母语为中文的开发者,写代码过程中经常需要在中/英输入法之间进行切换,而且由于不清楚当前处于哪种输入状态,有时输入到一半发现输入法错了,删除重新输入,有时切换了好几次都没有成功,实在太影响写代码了。
其实,在哪个位置需要使用哪种输入法是可以确定的,既然这样就可以让IDE帮助我们自动切换输入法。
JetBrains IntelliJ IDE可以通过Smart Input插件实现自动切换输入法,其核心功能是根据输入位置的上下文智能分析当前应该使用哪种输入法并自动切换,而且还可以通过光标的颜色来提醒当前是什么输入法。废话少说,先看效果。
注释场景
Java代码有三种注释方式,注释场景也是使用中文频率比较高的场景,下面动图演示了两种注释场景的效果。
识别到单行注释场景,自动切换为中文输入法。换行后编码,识别到光标位于编码区域,自动切换为英文输入法。整个过程无需主动切换输入法,写代码如丝般顺滑。光标红色表示当前使用中文输入法,灰色表示英文输入法。场景切换的时候会有浮层提示,熟悉后也可以关闭提示。
对代码进行文档注释时,自动识别到当前处于文档注释场景,自动为您切换为中文输入法。中文输入法状态也可以进行简单的英文输入。
Commit Message场景
一般我们都是使用中文写git的提交信息,该插件可以做到当Commit Message输入框获取到焦点时切换为中文输入法。
IdeaVim场景
习惯使用IdeaVim插件的人都知道在vim命令模式必须使用英文输入法,Smart Input插件可以在进入命令模式时自动切换为英文输入法。下图中光标为方块时表示进入了命令模式。
工具窗口场景
在命令终端需要使用英文输入法,Smart Input插件可以识别到Terminal工具窗口获取到输入焦点时候就会切换到英文输入法,省心省力。还有Project、Structure工具窗口也是只需要英文输入法,还支持通过窗口名称自定义。
SearchEveryWhere场景
双击Shift键可以唤起SearchEveryWhere对话框,用来搜索类、方法等,这里也是可以确定必须使用英文输入法,Smart Input插件支持SearchEveryWhere对话框获取到焦点后切换为英文输入法。
字符串字面量场景
字符串字面量是无法确认唯一一种输入法,插件支持设置字符串字面量场景的默认输入法,插件也支持根据字符串变量名或者方法参数名判断是否需要切换为中文输入法。演示插件已经提前配置好了自定义中文场景:chineseName;func(chineseName)。
上图中识别到字符串变量名称为chineseName,则当光标在字符串字面量中时自动切换为中文输入法。第二个配置的意思是如果识别到方法func的参数名称为chineseName,则在赋予字符串字面量时自动切换为中文输入法。
主动切换输入法
编码场景肯定使用的是英文,只有在注释、字符串字面量等场景才会使用中文,当然也有可能需要使用英文,简短的英文可以使用中文输入法输入,您也可以主动切换输入法,光标的颜色会随着输入法的改变而改变,始终准确的表示输入法状态。
为了避免主动切换输入法后因为光标的移动又自动切换输入法,因此提供三种锁定输入法的策略,可在设置页面进行选择,默认策略为:主动切换输入法后锁定自动切换直到光标跨行移动或进入编码区域。
中文输入补救功能
不使用Smart Input插件情况下,写代码的时候不知道当前处于什么输入状态,经常会出现如下的不好体验,编码需要英文输入法,字符串需要中文输入法,如果不在恰当的时机准确切换输入法,就会出现想要输入中文,但是在英文输入法状态下输入了,需要切换输入法并删除已经输入的部分重新输入。
使用Smart Input插件情况下,中文输入补救功能可以帮助你避免删除已经输入的部分重新输入,Smart Input插件识别到你切换为中文输入法之后帮助你完成重新输入的动作,你只需要切换输入法并接着继续输入就好,如下动图所示。
下载安装
Smart Input插件可以在IntelliJ官方插件市场下载安装,点击底部阅读原文可以链接到官方插件市场。安装说明可以参考公众号文章:IntelliJ插件Smart Input安装说明。
Smart Input插件已经支持了IntelliJ IDEA、Android Studio、PyCharm、WebStorm等JetBrains全系列产品。
您的分享和支持是我们最大的动力,如果您也觉得不错就分享给您的小伙伴吧。您有任何疑问或者需求,可以先关注微信公众号“开发效率”,然后发消息进行咨询,我们会尽快回复您。
关注微信公众号“开发效率”获取更多提升效率的方法。