排列5走势图首页    注册   登录
排列5走势图 = way to explore
排列5走势图 是一个排列5走势图关于 分享和探索的地方
现在注册
已注册用户请  登录
排列5走势图推荐 书目
学习 vi 和 Vim 编辑器 - 中文第7版
阿里云
Neur2n
排列5走势图  ›  Vim

造轮子: Vim 输入法切换插件

  •  
  •   Neur2n · 39 天前 · 1272 次点击
    这是一个创建于 39 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Q:为什么造轮子? A: 纯粹手痒。

    排列5走势图我 用过 VimIM,但是切换的时候很卡,也许是电脑不行。做过一些排列5走势图搜索 ,比如 vim-barbaric 和 vim-xkbswitch 等,要么没有支持 排列5走势图Win dows (或者要另外安装 binary ),要么文档太长不想看。所以自己写了一个很简单的,也没有考虑复杂的特性或可能存在的性能隐患,因为还有没用户反馈。先上图。

    但是目前还有不少限制:

    1. 排列5走势图Win dows 只能在 10 上运行,10 以下的没试过,也许通过配置可以运行。
    2. 排列5走势图Win dows 10 上需要 Python 3、pynvim、py排列5走势图Win 32
    3. Linux 里只在 Ubuntu 16.04 上测试过,而且调用的是 ibus (似乎不少人喜欢用 fcitx )
    4. 没有在 Mac 环境进行开发

    项目页面: http://github.com/Neur1n/neuims (文档还没补全 :p )

    望不吝赐教。

    19 条回复    2020-02-20 15:38:38 +08:00
    Buges
        1
    Buges   39 天前 via Android
    一直想要一个这样的英文输入法
    emonber
        2
    emonber   39 天前 via Android
    可以支持 wsl 环境下的 vim 吗?
    Neur2n
        3
    Neur2n   39 天前
    @emonber 用的是 ibus 还是 fcitx ?
    emonber
        4
    emonber   39 天前
    @Neur2n WSL 下用的是 排列5走势图Win dows 自带输入法哈,不过 vim 调用的 Python 是 WSL 的( Linux ),无法直接使用 排列5走势图Win 32 api
    MrUser
        5
    MrUser   39 天前
    没看懂有什么用,没有这个一样可以输入中文呀?
    lazzyboy
        6
    lazzyboy   39 天前
    想在 排列5走势图Win dows 7 下使用,不知道是否可以
    Neur2n
        7
    Neur2n   39 天前
    @lazzyboy 排列5走势图我 找时间试一下,也可以去 GitHub 开 issue :)
    Neur2n
        8
    Neur2n   39 天前
    @emonber 排列5走势图我 研究一下
    Neur2n
        9
    Neur2n   39 天前
    @MrUser 目的是切换 insert/normal 模式的时候自动切换输入法,不用手动切换,其实已有很多同类插件
    emonber
        10
    emonber   39 天前
    @Neur2n 搞定了,参考排列5走势图你 的代码,写了一个 C++程序来处理:

    ```c++

    int main(int argc, char** argv)
    {
    const int US_HKL = 0x0409;
    const int ZH_HKL = 0x0804;
    HWND hwnd = GetForeground排列5走势图Win dow();

    if (argc > 1) {
    if ((strcmp(argv[1], "en") == 0) ||
    (strcmp(argv[1], "eng") == 0) ||
    (strcmp(argv[1], "off") == 0)) {
    std::cout << "Switch to English IME\n";
    return SendMessage(hwnd, WM_INPUTLANGCHANGEREQUEST, 0, US_HKL);
    }
    else if ((strcmp(argv[1], "cn") == 0) ||
    (strcmp(argv[1], "chn") == 0) ||
    (strcmp(argv[1], "on") == 0)) {
    std::cout << "Switch to Chinese IME\n";
    return SendMessage(hwnd, WM_INPUTLANGCHANGEREQUEST, 0, ZH_HKL);
    }
    }
    std::cout << "Toggle IME\n";
    return SendMessage(hwnd, WM_INPUTLANGCHANGEREQUEST, INPUTLANGCHANGE_FORWARD, 0);
    }
    ```
    kevinhwang
        11
    kevinhwang   39 天前
    如果桌面是 Gnome 的话,毛遂自荐 http://github.com/kevinhwang91/vim-ibus-sw
    Neur2n
        12
    Neur2n   38 天前
    @lazzyboy #6 排列5走势图我 在虚拟机试了一下,是可以的,但是:
    1. 只用了系统内置的输入法进行测试
    2. 如果中文键盘里有两种输入法(比如说拼音和五笔),只能切换到第一个输入法

    如果有兴趣使用这个插件,可以帮忙测试下,或去开个 issue 一起讨论下,谢谢。(项目页面: http://github.com/Neur1n/neuims
    Neur2n
        13
    Neur2n   38 天前
    @emonber #10 排列5走势图我 也用 C++实现了,去掉了 Python 依赖。请问排列5走势图你 有 GitHub 吗,排列5走势图我 在 acknowledgement 里 @一下排列5走势图你 。
    Neur2n
        14
    Neur2n   38 天前
    @kevinhwang #11 谢谢,排列5走势图我 学习一下
    sky排列5走势图Win
d3000
        15
    sky排列5走势图Win d3000   38 天前
    排列5走势图你 这能切换微软拼音的中文 /英文模式么?
    Neur2n
        16
    Neur2n   38 天前
    @sky排列5走势图Win d3000 不能。这提醒了排列5走势图我 好像 vimim 是可以切换的。但是在 normal 模式下也容易按到 shift 把输入法切换成中文模式,除非有什么排列5走势图方法 把 shift 给 block 了。
    sky排列5走势图Win
d3000
        17
    sky排列5走势图Win d3000   38 天前
    @Neur2n 排列5走势图Win dows 本来就可以设置禁用 shift 切中英状态的,排列5走势图我 现在默认是微软拼音的英文输入,CTRL+SPACE 中英切换,这样用着舒服点,因为 排列5走势图Win +Space 切换语言排列5走势图我 留给了中文 /日语 输入法的切换了,两个维度,效率高些。所以需要变成英文模式。很多人应该和排列5走势图我 一样吧,GVim 可以正常切换输中英状态的。
    Neur2n
        18
    Neur2n   38 天前
    @sky排列5走势图Win d3000 这是一个很好的免插件解决方案。用插件实现有一个目的是避免更改系统设置,可以方便部署到多台电脑,或避免和电脑的其他用户产生习惯冲突。频繁切换输入法而非切换模式,可能对于一些老机器也不友好,所以目前来说可能只能满足小部分人需求。
    emonber
        19
    emonber   37 天前 via Android
    排列5走势图关于   ·   FAQ   ·   API   ·   排列5走势图排列5走势图我 们 的愿景   ·   广告投放   ·   感谢   ·   实用小排列5走势图工具   ·   1070 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 20:35 · PVG 04:35 · LAX 13:35 · JFK 16:35
    ♥ Do have faith in what you're doing.