• 请不要在回答技术问题时复制粘贴 AI 生成的内容
hadixlin
V2EX  ›  程序员

在 IdeaVim 中退出插入模式后自动切换输入法为英文

  •  1
     
  •   hadixlin · Apr 1, 2017 · 4818 views
    This topic created in 3345 days ago, the information mentioned may be changed or developed.

    之前发过一个帖子咨询大家的处理经验. 之后搜索网上一些资料,最终通过参照smartim写了个插件,初步解决该问题.

    安装后在编辑器中输入":set switch-to-english-when-exit-insert-mode",这个把这个命令加入到~/.ideavimrc 中,即可启用该功能.

    目前只能支持 macOS 因为不会写 LInux/Windows 的 Native 代码,希望有兴趣的朋友可以帮忙补充.

    有需要的朋友可以下载安装,多提意见.

    https://pan.baidu.com/s/1nuMXnIx

    注意该插件依赖 IdeaVim 需要先安装 IdeaVim,毕竟是作为它的扩展存在的,如果不用 IdeaVim 那么我的插件也没什么用.

    Supplement 1  ·  Apr 1, 2017
    昨晚发布的插件有 NPE 问题.
    请更新一下
    https://pan.baidu.com/s/1qXQUVz2
    Supplement 2  ·  Apr 7, 2017

    插件已整理发布到GitHub

    https://github.com/hadix-lin/ideavim_extension

    欢迎大家提意见和需求.

    Supplement 3  ·  Apr 9, 2017

    增加了回到插入模式恢复之前的输入法的能力,详情查看GitHub

    20 replies    2017-04-03 03:19:52 +08:00
    weixiangzhe
        1
    weixiangzhe  
       Apr 1, 2017 via iPhone
    马克下
    ahjsrhj
        2
    ahjsrhj  
       Apr 1, 2017 via iPhone
    Mark
    lonenol
        3
    lonenol  
       Apr 1, 2017
    厉害
    lonenol
        4
    lonenol  
       Apr 1, 2017
    已测试好用.
    要是直接能切换到当前输入法的英文模式就更好了(类似于按了 shift 键)
    forbreak
        5
    forbreak  
       Apr 1, 2017
    mark
    AbrahamGreyson
        6
    AbrahamGreyson  
       Apr 1, 2017 via iPhone
    太感谢了,这个问题逼疯我。
    jixiangqd
        7
    jixiangqd  
       Apr 1, 2017
    好用。。
    要是切走以后能再切回来就好了,或者像 @lonenol 说的那样,按 shift 就好了
    hadixlin
        8
    hadixlin  
    OP
       Apr 1, 2017
    @jixiangqd 我也想这样,如果输入法提供外部接口,也是可以做到这样的.
    hadixlin
        9
    hadixlin  
    OP
       Apr 1, 2017
    @jixiangqd 下次更新加上保存输入发状态的功能,回到插入模式后切回来.敬请期待.
    jixiangqd
        10
    jixiangqd  
       Apr 1, 2017
    @hadixlin 如果直接系统级模拟 shift 按键是不是就能实现了? github 开源吧,这样更新了还能接到 notify~
    hadixlin
        11
    hadixlin  
    OP
       Apr 1, 2017
    @jixiangqd 我是做 Java 的不了解也不会写操作系统 API,如果有人能贡献本地动态库的话,就可以做了.

    晚点儿代码整理好了,会放到 github 上.
    xiaohanqing
        12
    xiaohanqing  
       Apr 1, 2017 via Android
    我在 Windows 下有相同的实现,通过 libcall
    hadixlin
        13
    hadixlin  
    OP
       Apr 1, 2017 via Android
    @xiaohanqing 我不会写 windows 代码,我把头文件给你,可以帮忙写个 windows 的实现吗?
    jinboker
        14
    jinboker  
       Apr 2, 2017
    这个为啥不放到 github 上呢
    hadixlin
        15
    hadixlin  
    OP
       Apr 2, 2017 via Android
    @jinboker 代码整理好会放在上面
    xiaohanqing
        16
    xiaohanqing  
       Apr 2, 2017 via Android
    Echoldman
        17
    Echoldman  
       Apr 2, 2017
    我用 ctrl+I 作为切换输入发的方式。这样会到导致无效吗?我 10.12.4 , PHPStrom 2017.1
    hadixlin
        18
    hadixlin  
    OP
       Apr 2, 2017 via Android   ❤️ 1
    @Echoldman 跟快捷键设置无关,只是调用 macOS 的系统 api 把输入法切换到美国英文键盘
    sadhen
        19
    sadhen  
       Apr 2, 2017
    👍
    aristotll
        20
    aristotll  
       Apr 3, 2017
    mark for github
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1214 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 17:35 · PVG 01:35 · LAX 10:35 · JFK 13:35
    ♥ Do have faith in what you're doing.