年末,分享下我在 vim 下的中文输入方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yuuko
V2EX    Vim

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

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

    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
    涨见识了,不错的思路。
    jawilx
        22
    jawilx  
       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     Solana     5929 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 02:21 PVG 10:21 LAX 19:21 JFK 22:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86