4 个版本 (破坏性更新)
| 0.4.0 | 2022年12月31日 | 
|---|---|
| 0.3.0 | 2022年12月17日 | 
| 0.2.0 | 2022年12月12日 | 
| 0.1.0 | 2022年12月11日 | 
#208 in 文本编辑器
31KB
725 行
超级简单,超级方便的拼音输入法

中文 English
简介
通过 LSP 实现的超级简单拼音输入法,主要用于在 (neo)vim 编辑器中无需切换输入法即可输入中文。避免忘记切换输入法而导致在 Normal 模式下弹出输入法的烦人问题。
注意
- 非专业输入法,不是输入法的替代品,仅适合少量需要输入中文的场景。
- 仅支持全拼,需要配合 LSP 客户端使用,如 coc.nvim (neo)vim / VS Code / lsp-bridge (Emacs) 等。
Emacs 用户可以配合 lsp-bridge 使用
lsp-bridge 已经添加了对 ds-pinyin 的支持
(neo)vim 用户可以配合 coc.nvim 或者 neovim 内置的 lsp 使用
1. 使用扩展 coc-ds-pinyin-lsp
:CocInstall coc-ds-pinyin-lsp
插件设置项:
- ds-pinyin-lsp.enabled: 是否启用插件
- ds-pinyin-lsp.trace.server: 打开日志项
- ds-pinyin-lsp.prompt: 是否运行弹窗询问?例如询问下载- ds-pinyin-lsp- dict.db3文件
- ds-pinyin-lsp.show_status_bar: 是否开启状态栏显示
- ds-pinyin-lsp.status_bar_flag: 状态栏标志,默认- Pinyin
- ds-pinyin-lsp.check_on_startup: 是否检查更新
- ds-pinyin-lsp.db_path:- dict.db3文件
- ds-pinyin-lsp.server_path:- ds-pinyin-lsp命令或路径
- ds-pinyin-lsp.completion_on: 是否自动启用补全
- ds-pinyin-lsp.completion_around_mode: 是否启用环绕(光标在汉字(包括中文标点符号)开头/中间/结尾)补全模式
- ds-pinyin-lsp.completion_trigger_characters: 触发补全字符,配合- completion_around_mode使用,在启用环绕模式后,可以通过输入触发补全字符启用自动补全
- ds-pinyin-lsp.show_symbols: 是否补全中文标点符号
- ds-pinyin-lsp.show_symbols_only_follow_by_hanzi: 是否只在中文后面补全中文符号
- ds-pinyin-lsp.show_symbols_by_n_times: 是否在输入- n次符号后才显示中文符号补全选项,- 0表示不开启先选
- ds-pinyin-lsp.match_as_same_as_input: 是否只显示完全匹配结果,比如: 输入- pinyin会只显示- 拼音选项,不会显示- 拼音输入法等选项
- ds-pinyin-lsp.match_long_input: 是否显示长句匹配,比如:输入- nihaonishishei在没有补全项的时候会把- 你好- 你是谁两个选项拼起来作为补全选项
- ds-pinyin-lsp.max_suggest: 中文补全列表最大显示个数
插件命令:
- ds-pinyin-lsp.turn-on-completion: 开启自动补全
- ds-pinyin-lsp.turn-off-completion: 关闭自动补全
- ds-pinyin-lsp.toggle-completion: 切换自动补全
2. 使用 neovim 内置的 lsp
请先安装 nvim-lspconfig 插件,具体配置可参考其文档对应部分的配置。
如果需要配置选项,可参考如下的代码片段:
require('lspconfig').ds_pinyin_lsp.setup {
    init_options = {
        db_path = "your_path_to_database",
        completion_on = true,
        match_as_same_as_input = true,
    }
}
可配置项请参考 coc-settings.json 的 initializationOptions 部分。
3. 不使用扩展
从 Release 下载 ds-pinyin-lsp 或通过 cargo install ds-pinyin-lsp 安装 ds-pinyin-lsp 然后添加以下配置到 coc-settings.json
  "languageserver": {
    "ds-pinyin": {
      "command": "path to ds-pinyin-lsp command",
      "filetypes": ["*"],
      "initializationOptions": {
        "db_path": "path to dict.db3",                             // dict.db3 字典文件
        "completion_on": true,                                     // 是否开启自动补全
        "completion_around_mode":                                  // 是否启用环绕(光标在汉字(包括中文标点符号)开头/中间/结尾)补全模式
        "completion_trigger_characters":                           // 触发补全字符,配合 completion_around_mode 使用,在启用环绕模式后,可以通过输入触发补全字符启用自动补全
        "show_symbols": true,                                      // 是否补全中文标点符号
        "show_symbols_only_follow_by_hanzi": false,                // 是否只在中文后面补全中文符号
        "show_symbols_by_n_times": 0,                              // 是否在输入 `n` 次符号后才显示中文符号补全选项,`0` 表示不开启先选
        "match_as_same_as_input": true,                            // 是否只显示完全匹配结果,比如: 输入 `pinyin` 会只显示 `拼音` 选项,不会显示 `拼音输入法` 选项
        "match_long_input": true,                                  // 是否显示长句匹配,比如:输入 `nihaonishishei` 在没有补全项的时候会把 `你好` `你是谁` 两个选项拼起来作为补全选项
        "max_suggest": 50                                          // 中文补全列表最大显示个数
      }
    }
  }
dict.db3可以从 Release 下载。
可以通过向服务端发送通知(Notification)来关闭/开启/切换自动补全
- $/turn/completion: 参数:- { completion_on?: boolean }
Packages
- dict-builder 用来构建 dict.db3
- ds-pinyin-lsp lsp 实现
- coc-ds-pinyin-lsp coc.nvim 扩展
关于使用的字典
所使用的字典来自 rime-ice 项目
请我吃个煎饼馃子 🤟

Dependencies
~39MB
~659K SLoC