V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hadixlin
V2EX  ›  程序员

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

  •  1
     
  •   hadixlin · 2017-04-01 01:40:41 +08:00 · 4137 次点击
    这是一个创建于 2576 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    第 1 条附言  ·  2017-04-01 15:25:35 +08:00
    昨晚发布的插件有 NPE 问题.
    请更新一下
    https://pan.baidu.com/s/1qXQUVz2
    第 2 条附言  ·  2017-04-07 12:21:00 +08:00

    插件已整理发布到GitHub

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

    欢迎大家提意见和需求.

    第 3 条附言  ·  2017-04-09 14:46:13 +08:00

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

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

    晚点儿代码整理好了,会放到 github 上.
    xiaohanqing
        12
    xiaohanqing  
       2017-04-01 20:06:53 +08:00 via Android
    我在 Windows 下有相同的实现,通过 libcall
    hadixlin
        13
    hadixlin  
    OP
       2017-04-01 22:54:42 +08:00 via Android
    @xiaohanqing 我不会写 windows 代码,我把头文件给你,可以帮忙写个 windows 的实现吗?
    jinboker
        14
    jinboker  
       2017-04-02 07:59:55 +08:00
    这个为啥不放到 github 上呢
    hadixlin
        15
    hadixlin  
    OP
       2017-04-02 09:38:51 +08:00 via Android
    @jinboker 代码整理好会放在上面
    xiaohanqing
        16
    xiaohanqing  
       2017-04-02 10:19:22 +08:00 via Android
    Echoldman
        17
    Echoldman  
       2017-04-02 15:44:41 +08:00
    我用 ctrl+I 作为切换输入发的方式。这样会到导致无效吗?我 10.12.4 , PHPStrom 2017.1
    hadixlin
        18
    hadixlin  
    OP
       2017-04-02 16:55:37 +08:00 via Android   ❤️ 1
    @Echoldman 跟快捷键设置无关,只是调用 macOS 的系统 api 把输入法切换到美国英文键盘
    sadhen
        19
    sadhen  
       2017-04-02 20:28:51 +08:00
    👍
    aristotll
        20
    aristotll  
       2017-04-03 03:19:52 +08:00
    mark for github
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1886 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:23 · PVG 00:23 · LAX 09:23 · JFK 12:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.