在windows中利用im-select实现neovim中英文自动切换

之所以喜欢vim编辑器是因为vim模式、快捷键以及各种插件十分方便,并且高度自定义,但一直被windows下neovim输入法自动切换的问题困扰,在linux以及mac系统下都有成熟的方案以及插件可以提供输入法切换,但在windows下却十分困难,找了很多资料最终实现了利用im-select进行windows输入法切换

  • windows下并不是没有输入法自动切换插件,在此之前,笔者一直使用Neur1n/neuims插件进行输入法切换,但是效果并不好,于是试着寻找一种更好的输入法切换方法,但一直找不到windows下切换输入法的调用句柄,后来这篇文章在讲vscode-neovim的输入法切换时给我提供了思路,使用im-select就可以利用shell实现输入法切换

  • 首先下载im-select.exe可执行程序

    github地址:https://github.com/daipeihust/im-select
    gitee地址:https://gitee.com/ianaxe/im-select

  • 需要在系统设置中添加中英文语言包,需要下载中文(简体,中国)和英语(美国),im-select只能实现语言包的切换而不是输入法切换

    image-20230120093652380

  • 勾选”允许为每个应用窗口使用不同输入法“选项

    image-20230120093902662

  • 随后在im-select.exe所在文件夹打开shell窗口,执行.\im-select.exe之后会返回当前输入语言的句柄值,我的电脑中文使用搜狗输入法,执行.\im-select.exe后其返回值为2052,切换到英文输入法后再次执行.\im-select.exe,其返回值为1033

    image-20230120093750128

  • 随后执行.\im-select.exe 1033以及.\im-select.exe 2052测试输入语言可以正常切换,说明可以利用shell借助im-select进行输入语言切换

    image-20230120093938959

  • 最后在neovim配置文件init.vim中添加配置代码:

    autocmd VimEnter * !D:\\im-select\\im-select.exe 1033
    autocmd InsertEnter * :silent :!D:\\im-select\\im-select.exe 2052
    autocmd InsertLeave * :silent :!D:\\im-select\\im-select.exe 1033
    autocmd VimLeave * !D:\\im-select\\im-select.exe 2052
    
    • 代码功能:实现进入neovim切换到英文输入,从而便于第一次快捷键输入,随后进入insert模式切换到中文输入,离开insert模式切换到英文输入,离开neovim时切换到中文输入防止出错
    • 代码说明:autocmd不用过多解释,neovim的自动命令,VimEnter和VimLeave是触发事件,分别是进入vim和离开vim触发事件,InsertEnter和InsertLeave表示进入和离开insert模式的触发事件,D:\im-select是im-select.exe所在路径,注意\之前需要再加\进行转义

可能有人困惑,为什么要在neovim中进行中英文切换,其实对于一般用户而言可能仅仅在写程序时并不需要频繁的中英文切换,但是对于不擅长做英文笔记的重度markdown用户来讲,neovim自动中英文切换功能很有必要,在进入insert模式时自动切换到中文输入,回到normal等模式时自动切换到英文输入,目前neovim进行markdown编辑需要解决的问题主要有两个,一是图片管理能力,其次是中英文切换问题,此文是我认为的目前为止windows下neovim进行中英文输入法切换的最佳方案,但是话又说回来,为什么要使用neovim编辑markdown而不使用专业的markdown编辑器,我认为neovim的编辑模式快捷键以及锚点是其进行markdown编辑的绝对优势,纯文字markdown笔记非常适合使用neovim进行编辑,但是涉及到图片的markdown我一般会使用typora,之后有机会我可能会写一下neovim的锚点以及typora笔记系统

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RaderPro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值