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

年末,分享下我在 vim 下的中文输入方案

  •  
  •   yuuko · 2022-12-31 19:04:36 +08:00 · 4995 次点击
    这是一个创建于 696 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Github: ds-pinyin-lsp

    这是一个使用 Language Server 客户端作为前端的全拼中文输入方案,所以它是像输入代码一样输入中文,所以应该算是 vim 里面比较无痛的中文输入方案。

    具体使用

    以 coc.nvim 为例 (也支持任何其它 LS Client )

    安装 coc.nvim 插件

    :CocInstall coc-ds-pinyin-lsp
    

    或者通过 coc-settings.json 配置 language server 配置,具体看项目主页。

    个人认为最佳的配置方案

      "ds-pinyin-lsp.completion_on": true,
      "ds-pinyin-lsp.completion_around_mode": true,
      "ds-pinyin-lsp.completion_trigger_characters": ">",
      "ds-pinyin-lsp.show_symbols": true,
      "ds-pinyin-lsp.show_symbols_only_follow_by_hanzi": true,
      "ds-pinyin-lsp.show_symbols_by_n_times": 2,
      "ds-pinyin-lsp.max_suggest": 50,
      "ds-pinyin-lsp.match_as_same_as_input": false,
      "ds-pinyin-lsp.match_long_input": true,
      "ds-pinyin-lsp.status_bar_flag": "拼",
    

    这个配置,一般情况下不会出现补全中文选项,只有光标出现在中文环绕(开头 /中间 /末尾)的情况会出现中文补全选项,或者在输入 > 字符(可以自己配置)后面会启用中文补全。避免中文补全扰乱代码补全。

    第 1 条附言  ·  2022-12-31 19:45:38 +08:00
    补充下,搞个这不是因为没有好用的输入法,而是在 vim 下输入中文,切回 Normal 模式,老是忘记切换输入法,然后一顿操作发现输入法没切换过来非常烦。各种 smart ime 切后都用过了,还是会出现这种情况。
    第 2 条附言  ·  2023-01-01 00:12:34 +08:00
    有的同学貌似不是看得很民白,这里录制了一个录屏,凑活看看

    https://github.com/iamcco/ds-pinyin-lsp/issues/1#issuecomment-1368246554
    29 条回复    2023-01-19 21:02:18 +08:00
    basncy
        1
    basncy  
       2022-12-31 19:30:46 +08:00
    yuuko
        2
    yuuko  
    OP
       2022-12-31 19:41:18 +08:00 via Android
    @basncy 老哥分享下
    yuuko
        3
    yuuko  
    OP
       2022-12-31 19:42:25 +08:00 via Android
    @yuuko 看错了,你这个也是 IME 的输入框吧?
    basncy
        4
    basncy  
       2022-12-31 20:08:08 +08:00
    木有苹果设备, 但是你可以研究一下. https://github.com/rime/squirrel

    听说一套配置可以同时用在 windows, linux, android, ios, macos 上面. 至少我实现了非苹果设备全平台同步.
    yuuko
        5
    yuuko  
    OP
       2022-12-31 20:26:44 +08:00 via Android
    @basncy 感谢分享,之前看错了,我以为你这个是不需要依赖 IME 的,我目前所烦的不是没有好用的输入法,而是 vim 下输入中文需要切换输入法的问题,因为时常切换不过来导致在 Normal 模式操作乱飞
    Kobayashi
        6
    Kobayashi  
       2022-12-31 21:00:08 +08:00 via Android
    还是没明白怎么回事,简介里能说得更明白点吗?
    yuuko
        7
    yuuko  
    OP
       2022-12-31 21:02:57 +08:00 via Android
    @Kobayashi 就是在编辑器里面输入拼音,中文选项出现在代码补全列表里面
    Davic1
        8
    Davic1  
       2022-12-31 21:14:39 +08:00
    @basncy 你设置的中英文切换是什么键位?另我改了中英切换键在 iterm2 里面经常没办法切换,反而 kitty 就没问题。。,
    Dvel
        9
    Dvel  
       2022-12-31 21:28:33 +08:00
    JetBrains 的 IdeaVim 有个插件( IdeaVimExtension )可以在回到普通模式的时候自动切回到英文输入法,不知道纯 Vim 有没有这样的插件。
    yuuko
        10
    yuuko  
    OP
       2022-12-31 21:30:30 +08:00 via Android
    @Dvel vim 也有这样的插件,不过用的过程中时常切换失败
    amlee
        11
    amlee  
       2022-12-31 21:38:37 +08:00
    @yuuko 这个功能应该用什么关键字搜呢?我想在找找 vscode 有没类似插件
    starrycat
        12
    starrycat  
       2022-12-31 21:48:29 +08:00 via Android
    有意思,可惜不支持双拼🥲
    yuuko
        13
    yuuko  
    OP
       2022-12-31 21:51:53 +08:00 via Android
    @amlee smart ime 试试
    Kobayashi
        14
    Kobayashi  
       2022-12-31 22:36:15 +08:00 via Android
    @yuuko 我明白了,这个输入法是把自己做成了一个 Vim 补全插件。
    zbinlin
        15
    zbinlin  
       2022-12-31 23:23:01 +08:00
    这想法不错,最好录个 gif 来看下实际效果。
    yuuko
        16
    yuuko  
    OP
       2023-01-01 00:13:34 +08:00   ❤️ 1
    zbinlin
        17
    zbinlin  
       2023-01-01 00:29:34 +08:00
    @yuuko 这效果很赞,已经很好的融合进来了。可以扩展一下支持码表(做成类似 RIME 这样的框架)
    basncy
        18
    basncy  
       2023-01-01 01:18:10 +08:00
    @yuuko 找个所有 app 都不冲突的就行. 左 Shift 习惯吗? rime 这样设置 Shift_L: inline_ascii
    basncy
        19
    basncy  
       2023-01-01 01:25:41 +08:00
    https://github.com/rime/squirrel/issues/302
    你别说你还在用系统的 Ctrl+Space 切换... rime 框架本身就支持多个方案切换, 很灵活的.
    thedrwu
        20
    thedrwu  
       2023-01-01 01:53:52 +08:00 via Android
    自用方案: https://lstu.fr/VVT6jFpL
    ns09005264
        21
    ns09005264  
       2023-01-01 04:57:16 +08:00
    涨见识了,不错的思路。
    xujiahui
        22
    xujiahui  
       2023-01-01 09:01:58 +08:00
    rime 能配置各个软件的 vim_mode ,切到 normal 模式时会自动换成英文
    zwlinc
        23
    zwlinc  
       2023-01-01 12:47:06 +08:00
    感觉很 Nice !
    zagfai
        24
    zagfai  
       2023-01-01 17:30:06 +08:00
    想要个粤语拼音:o
    Gilfoylek
        25
    Gilfoylek  
       2023-01-03 10:01:57 +08:00
    @yuuko squirrel 可以配置 摁下 esc 之后, 自动转换成 abc 输入法。 (我是这么简单用的
    zhouzm
        26
    zhouzm  
       2023-01-03 15:17:21 +08:00
    这个厉害了,能支持别的输入法么,例如五笔。
    wlh233
        27
    wlh233  
       2023-01-12 21:22:52 +08:00
    受到 OP 的启发,我这两天写了一个包装 librime 的 LSP ,https://github.com/wlh320/rime-ls 目前 bug 还很多,用着跟智能 ABC 差不多哈哈
    yuuko
        28
    yuuko  
    OP
       2023-01-13 11:10:16 +08:00
    @wlh233 不错,搞好了我换你这个
    yuancoder
        29
    yuancoder  
       2023-01-19 21:02:18 +08:00
    自己写了一个脚本切换,用起来还可以。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5470 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 07:44 · PVG 15:44 · LAX 23:44 · JFK 02:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.