rime-easy-en icon indicating copy to clipboard operation
rime-easy-en copied to clipboard

手动安装,微软双拼无法开启中英混输

Open burg1ar opened this issue 3 years ago • 14 comments

操作系统:ubuntu 18.04 输入法:fcitx-rime,double_pinyin_mspy 部署方式:参照“手动安装easy_en” 结果:无法开启中英混输

burg1ar avatar Nov 29 '21 12:11 burg1ar

具体的操作步骤:

  1. easy_en.dict.yaml easy_en.yaml lua/easy_en.lua 复制到 rime 配置目录。
  2. double_pinyin_mspy.custom.yaml 中添加:
        patch:
        __include: easy_en:/patch_double_pinyin_mspy
    
  3. 重新部署 结果,中英混输没有生效 我是否遗漏了什么步骤

burg1ar avatar Nov 30 '21 02:11 burg1ar

能否将完整的配置分享一下?

BlindingDark avatar Nov 30 '21 05:11 BlindingDark

default.custom.yaml:

patch:
  schema_list:
    - schema: double_pinyin_mspy
    - schema: luna_pinyin_simp

default.yaml:

ascii_composer:
  good_old_caps_lock: true
  switch_key:
    Caps_Lock: clear
    Control_L: noop
    Control_R: noop
    Eisu_toggle: clear
    Shift_L: inline_ascii
    Shift_R: commit_text
config_version: 0.35.custom.930421487
customization: 930421487
key_binder:
  bindings:
    - {accept: "Control+p", send: Up, when: composing}
    - {accept: "Control+n", send: Down, when: composing}
    - {accept: "Control+b", send: Left, when: composing}
    - {accept: "Control+f", send: Right, when: composing}
    - {accept: "Control+a", send: Home, when: composing}
    - {accept: "Control+e", send: End, when: composing}
    - {accept: "Control+d", send: Delete, when: composing}
    - {accept: "Control+k", send: "Shift+Delete", when: composing}
    - {accept: "Control+h", send: BackSpace, when: composing}
    - {accept: "Control+g", send: Escape, when: composing}
    - {accept: "Control+bracketleft", send: Escape, when: composing}
    - {accept: "Alt+v", send: Page_Up, when: composing}
    - {accept: "Control+v", send: Page_Down, when: composing}
    - {accept: ISO_Left_Tab, send: Page_Up, when: composing}
    - {accept: "Shift+Tab", send: Page_Up, when: composing}
    - {accept: Tab, send: Page_Down, when: composing}
    - {accept: minus, send: Page_Up, when: has_menu}
    - {accept: equal, send: Page_Down, when: has_menu}
    - {accept: comma, send: Page_Up, when: paging}
    - {accept: period, send: Page_Down, when: has_menu}
    - {accept: "Control+Shift+1", select: .next, when: always}
    - {accept: "Control+Shift+2", toggle: ascii_mode, when: always}
    - {accept: "Control+Shift+3", toggle: full_shape, when: always}
    - {accept: "Control+Shift+4", toggle: simplification, when: always}
    - {accept: "Control+Shift+5", toggle: extended_charset, when: always}
    - {accept: "Control+Shift+exclam", select: .next, when: always}
    - {accept: "Control+Shift+at", toggle: ascii_mode, when: always}
    - {accept: "Control+Shift+numbersign", toggle: full_shape, when: always}
    - {accept: "Control+Shift+dollar", toggle: simplification, when: always}
    - {accept: "Control+Shift+percent", toggle: extended_charset, when: always}
    - {accept: "Shift+space", toggle: full_shape, when: always}
    - {accept: "Control+period", toggle: ascii_punct, when: always}
menu:
  page_size: 5
punctuator:
  full_shape:
    " ": {commit: " "}
    "!": {commit: "!"}
    "\"": {pair: ["“", "”"]}
    "#": ["#", "⌘"]
    "$": ["¥", "$", "€", "£", "¥", "¢", "¤"]
    "%": ["%", "°", "℃"]
    "&": "&"
    "'": {pair: ["‘", "’"]}
    "(": "("
    ")": ")"
    "*": ["*", "·", "・", "×", "※", "❂"]
    "+": "+"
    ",": {commit: ","}
    "-": "-"
    .: {commit: "。"}
    "/": ["/", "÷"]
    ":": {commit: ":"}
    ";": {commit: ";"}
    "<": ["《", "〈", "«", "‹"]
    "=": "="
    ">": ["》", "〉", "»", "›"]
    "?": {commit: "?"}
    "@": ["@", "☯"]
    "[": ["「", "【", "〔", "["]
    "\\": ["、", "\"]
    "]": ["」", "】", "〕", "]"]
    "^": {commit: "……"}
    _: "——"
    "`": "`"
    "{": ["『", "〖", "{"]
    "|": ["·", "|", "§", "¦"]
    "}": ["』", "〗", "}"]
    "~": "~"
  half_shape:
    "!": {commit: "!"}
    "\"": {pair: ["“", "”"]}
    "#": "#"
    "$": ["¥", "$", "€", "£", "¥", "¢", "¤"]
    "%": ["%", "%", "°", "℃"]
    "&": "&"
    "'": {pair: ["‘", "’"]}
    "(": "("
    ")": ")"
    "*": ["*", "*", "·", "・", "×", "※", "❂"]
    "+": "+"
    ",": {commit: ","}
    "-": "-"
    .: {commit: "。"}
    "/": ["、", "/", "/", "÷"]
    ":": {commit: ":"}
    ";": {commit: ";"}
    "<": ["《", "〈", "«", "‹"]
    "=": "="
    ">": ["》", "〉", "»", "›"]
    "?": {commit: "?"}
    "@": "@"
    "[": ["「", "【", "〔", "["]
    "\\": ["、", "\\", "\"]
    "]": ["」", "】", "〕", "]"]
    "^": {commit: "……"}
    _: "——"
    "`": "`"
    "{": ["『", "〖", "{"]
    "|": ["·", "|", "|", "§", "¦"]
    "}": ["』", "〗", "}"]
    "~": ["~", "~"]
recognizer:
  patterns:
    email: "^[A-Za-z][-_.0-9A-Za-z]*@.*$"
    uppercase: "[A-Z][-_+.'0-9A-Za-z]*$"
    url: "^(www[.]|https?:|ftp[.:]|mailto:|file:).*$|^[a-z]+[.].+$"
schema_list:
  - schema: double_pinyin_mspy
  - schema: luna_pinyin_simp
switcher:
  abbreviate_options: true
  caption: "〔方案選單〕"
  fold_options: true
  hotkeys:
    - "Control+grave"
    - "Control+Shift+grave"
    - F4
  option_list_separator: "/"
  save_options:
    - full_shape
    - ascii_punct
    - simplification
    - extended_charset

double_pinyin_mspy.custom.yaml:

patch:
  translator/dictionary: luna_pinyin.extended
  __include: easy_en:/patch_double_pinyin_mspy
  engine/translators:
    - punct_translator
    - reverse_lookup_translator
    - script_translator
    - table_translator@custom_phrase
    - table_translator
  custom_phrase:
    dictionary: ""
    user_dict: custom_phrase
    db_class: stabledb
    enable_completion: false
    enable_sentence: false
    initial_quality: 1

double_pinyin_mspy.schema.yaml:

__include: "easy_en:/patch_double_pinyin_mspy"
custom_phrase:
  db_class: stabledb
  dictionary: ""
  enable_completion: false
  enable_sentence: false
  initial_quality: 1
  user_dict: custom_phrase
customization: 549439220
engine:
  filters:
    - simplifier
    - uniquifier
  processors:
    - ascii_composer
    - recognizer
    - key_binder
    - speller
    - punctuator
    - selector
    - navigator
    - express_editor
  segmentors:
    - ascii_segmentor
    - matcher
    - abc_segmentor
    - punct_segmentor
    - fallback_segmentor
  translators:
    - punct_translator
    - reverse_lookup_translator
    - script_translator
    - "table_translator@custom_phrase"
    - table_translator
key_binder:
  import_preset: default
punctuator:
  import_preset: default
recognizer:
  import_preset: default
  patterns:
    reverse_lookup: "`[a-z]*'?$"
reverse_lookup:
  comment_format:
    - "xform/([nl])v/$1ü/"
  dictionary: stroke
  enable_completion: true
  preedit_format:
    - "xlit/hspnz/一丨丿丶乙/"
  prefix: "`"
  suffix: "'"
  tips: "〔筆畫〕"
schema:
  author:
    - "佛振 <[email protected]>"
  dependencies:
    - stroke
  description: |
    朙月拼音+MSPY雙拼方案。
    
  name: "MSPY雙拼"
  schema_id: double_pinyin_mspy
  version: 0.15.custom.549439220
speller:
  algebra:
    - "erase/^xx$/"
    - "derive/^([jqxy])u$/$1v/"
    - "derive/^([aoe].*)$/o$1/"
    - "xform/^([ae])(.*)$/$1$1$2/"
    - "xform/iu$/Q/"
    - "xform/[iu]a$/W/"
    - "xform/er$|[uv]an$/R/"
    - "xform/[uv]e$/T/"
    - "xform/v$|uai$/Y/"
    - "xform/^sh/U/"
    - "xform/^ch/I/"
    - "xform/^zh/V/"
    - "xform/uo$/O/"
    - "xform/[uv]n$/P/"
    - "xform/i?ong$/S/"
    - "xform/[iu]ang$/D/"
    - "xform/(.)en$/$1F/"
    - "xform/(.)eng$/$1G/"
    - "xform/(.)ang$/$1H/"
    - "xform/ian$/M/"
    - "xform/(.)an$/$1J/"
    - "xform/iao$/C/"
    - "xform/(.)ao$/$1K/"
    - "xform/(.)ai$/$1L/"
    - "xform/(.)ei$/$1Z/"
    - "xform/ie$/X/"
    - "xform/ui$/V/"
    - "derive/T$/V/"
    - "xform/(.)ou$/$1B/"
    - "xform/in$/N/"
    - "xform/ing$/;/"
    - "xlit/QWRTYUIOPSDFGHMJCKLZXVBN/qwrtyuiopsdfghmjcklzxvbn/"
  alphabet: "zyxwvutsrqponmlkjihgfedcba;"
  delimiter: " '"
  initials: zyxwvutsrqponmlkjihgfedcba
switches:
  - name: ascii_mode
    reset: 0
    states: ["中文", "西文"]
  - name: full_shape
    states: ["半角", "全角"]
  - name: simplification
    states: ["漢字", "汉字"]
  - name: ascii_punct
    states: ["。,", ".,"]
translator:
  dictionary: luna_pinyin.extended
  preedit_format:
    - "xform/([aoe])(\\w)/0$2/"
    - "xform/([bpmnljqxy])n/$1in/"
    - "xform/(\\w)g/$1eng/"
    - "xform/(\\w)q/$1iu/"
    - "xform/([gkhvuirzcs])w/$1ua/"
    - "xform/(\\w)w/$1ia/"
    - "xform/([dtnlgkhjqxyvuirzcs])r/$1uan/"
    - "xform/0r/er/"
    - "xform/([dtgkhvuirzcs])v/$1ui/"
    - "xform/(\\w)v/$1ve/"
    - "xform/(\\w)t/$1ve/"
    - "xform/([gkhvuirzcs])y/$1uai/"
    - "xform/(\\w)y/$1v/"
    - "xform/([dtnlgkhvuirzcs])o/$1uo/"
    - "xform/(\\w)p/$1un/"
    - "xform/([jqx])s/$1iong/"
    - "xform/(\\w)s/$1ong/"
    - "xform/([jqxnl])d/$1iang/"
    - "xform/(\\w)d/$1uang/"
    - "xform/(\\w)f/$1en/"
    - "xform/(\\w)h/$1ang/"
    - "xform/(\\w)j/$1an/"
    - "xform/(\\w)k/$1ao/"
    - "xform/(\\w)l/$1ai/"
    - "xform/(\\w)z/$1ei/"
    - "xform/(\\w)x/$1ie/"
    - "xform/(\\w)c/$1iao/"
    - "xform/(\\w)b/$1ou/"
    - "xform/(\\w)m/$1ian/"
    - "xform/(\\w);/$1ing/"
    - "xform/0(\\w)/$1/"
    - "xform/(^|[ '])v/$1zh/"
    - "xform/(^|[ '])i/$1ch/"
    - "xform/(^|[ '])u/$1sh/"
    - "xform/([jqxy])v/$1u/"
    - "xform/([nl])v/$1ü/"
  prism: double_pinyin_mspy

词库和短语什么的我就不分享了 如果还需要什么其他信息,请告知,感谢

burg1ar avatar Nov 30 '21 06:11 burg1ar

另外,rime目录结构如下:

rime
├── cangjie5_express.prism.bin -> /usr/share/rime-data/cangjie5_express.prism.bin
├── cangjie5.prism.bin -> /usr/share/rime-data/cangjie5.prism.bin
├── cangjie5.reverse.bin -> /usr/share/rime-data/cangjie5.reverse.bin
├── cangjie5.schema.yaml
├── cangjie5.table.bin -> /usr/share/rime-data/cangjie5.table.bin
├── custom_phrase.txt
├── default.custom.yaml
├── default.yaml
├── double_pinyin_abc.prism.bin -> /usr/share/rime-data/double_pinyin_abc.prism.bin
├── double_pinyin_flypy.prism.bin -> /usr/share/rime-data/double_pinyin_flypy.prism.bin
├── double_pinyin_mspy.custom.yaml
├── double_pinyin_mspy.prism.bin
├── double_pinyin_mspy.schema.yaml
├── double_pinyin.prism.bin -> /usr/share/rime-data/double_pinyin.prism.bin
├── easy_en.dict.yaml
├── easy_en.schema.yaml
├── easy_en.yaml
├── installation.yaml
├── lua
│   └── easy_en.lua
├── luna_pinyin.extended.dict.yaml
├── luna_pinyin.extended.reverse.bin
├── luna_pinyin.extended.table.bin
├── luna_pinyin_fluency.prism.bin -> /usr/share/rime-data/luna_pinyin_fluency.prism.bin
├── luna_pinyin_fluency.schema.yaml
├── luna_pinyin.prism.bin
├── luna_pinyin.reverse.bin -> /usr/share/rime-data/luna_pinyin.reverse.bin
├── luna_pinyin.schema.yaml
├── luna_pinyin_simp.custom.yaml
├── luna_pinyin_simp.prism.bin
├── luna_pinyin_simp.schema.yaml
├── luna_pinyin.table.bin -> /usr/share/rime-data/luna_pinyin.table.bin
├── luna_pinyin_tw.prism.bin -> /usr/share/rime-data/luna_pinyin_tw.prism.bin
├── luna_pinyin_tw.schema.yaml
├── luna_pinyin.userdb
│   ├── 000198.ldb
│   ├── 000200.ldb
│   ├── 000207.ldb
│   ├── 000210.log
│   ├── CURRENT
│   ├── LOCK
│   ├── LOG
│   ├── LOG.old
│   └── MANIFEST-000209
├── luna_pinyin.zhwiki.dict.yaml
├── symbols.yaml
├── sync
│   └── 2775cec6-4d6a-44a6-8d64-1142131dd23d
│       ├── cangjie5.schema.yaml
│       ├── custom_phrase.txt
│       ├── default.custom.yaml
│       ├── default.yaml
│       ├── double_pinyin_mspy.custom.yaml
│       ├── double_pinyin_mspy.schema.yaml
│       ├── easy_en.dict.yaml
│       ├── easy_en.schema.yaml
│       ├── easy_en.yaml
│       ├── installation.yaml
│       ├── luna_pinyin.extended.dict.yaml
│       ├── luna_pinyin_fluency.schema.yaml
│       ├── luna_pinyin.schema.yaml
│       ├── luna_pinyin_simp.schema.yaml
│       ├── luna_pinyin_tw.schema.yaml
│       ├── luna_pinyin.userdb.txt
│       ├── luna_pinyin.zhwiki.dict.yaml
│       ├── symbols.yaml
│       └── user.yaml
└── user.yaml

burg1ar avatar Nov 30 '21 06:11 burg1ar

好的 有空我在我电脑上帮你看看 😎

BlindingDark avatar Nov 30 '21 11:11 BlindingDark

@burg1ar 经过排查,你可以尝试以下放方法

  1. 关闭连续输入增强 点我

  2. 提高单词排序权重 点我

BlindingDark avatar Dec 05 '21 05:12 BlindingDark

尝试:

  1. 创建文件:easy_en.custom.yaml,并添加内容:
patch:
engine/filters:
  - uniquifier
  1. double_pinyin_mspy.custom.yaml开头修改为:
patch:
  translator/dictionary: luna_pinyin.extended
  # the following two lines are for esay_en
  __include: easy_en:/patch_double_pinyin_mspy
  easy_en/initial_quality: 0.5

测试: 在双拼模式,输入“hello”得到显示: image 问题似乎没有得到修复

burg1ar avatar Dec 06 '21 03:12 burg1ar

能否将你测试成功的配置分享一下,感谢

burg1ar avatar Dec 06 '21 03:12 burg1ar

@burg1ar 我是完全使用你上面贴的配置文件 检查这个缩进是否正确,你上面发的少了空格

patch:
  engine/filters:
    - uniquifier

BlindingDark avatar Dec 06 '21 05:12 BlindingDark

如果还是不行的话欢迎加入 https://t.me/loverime 群组讨论,我可以帮你远程调试

BlindingDark avatar Dec 06 '21 05:12 BlindingDark

好的,等周末我调一下

burg1ar avatar Dec 06 '21 08:12 burg1ar

不是缩进的问题,还是不行,我也加了你分享的群组 https://t.me/loverime

burg1ar avatar Dec 12 '21 11:12 burg1ar

在ubuntu 20.04上进行了测试,安装的软件都来自于系统仓库 fcitx version: Version: 1:4.2.9.7-3 fcitx-rime version: Version: 0.3.2-6build1 librime1 version: Version: 1.5.3+dfsg1-4build3

手动安装rime-easy-en,结果:依旧不能实现中英文混输 fcitx5版本的rime安装比较复杂,没有现成的软件包,就不测试了 这个问题暂时就这样吧,英文输入的需求也没那么大,感谢提供的帮助

burg1ar avatar Dec 20 '21 15:12 burg1ar

windows 配置 rime、双拼、easy_en,前面也是调了两天,前几步都没问题,但是最后混输实在调不出来, 根据 BlindingDark  的留言多调了几步竟然成了,特地跑来分享: 1. 下载 rime 2. 安装中文方案双拼,用 rime 自带的 installer就可以实现,在“输入法设定→下载工具命令行里面输入: https://github.com/rime/rime-double-pinyin (使用程序设置菜单就可以更换方案,不需要网上教程的更改(新建)default.custom.yaml) 3. 使用自带的 installer 安装 easy en: 命令行里面输入: BlindingDark/rime-easy-en 4. 但下一步

就运行不了了,大部分时间由于网络问题报错,偶尔有一次成功。 但我需要的双拼加 easy en。 5. 所以使用下方手动安装方案: github 下载 zip,解压到 用户目录,手动安装 easy_en 6. Windows 用户应下载 wordninja_windows_32_lua53.dll,然后将下载到的文件重命名为 wordninja.dll。 把 wordninja.dll 文件文件放到 Rime的 **程序文件夹 ** 下。 7. 将 lua 文件夹复制到 **程序文件夹 **。(里面只有一个 easy_en.lua 不要动它) 8. 用戶文件夹里新建 easy_en.custom.yaml. 填写 patch: easy_en/use_wordninja_rs_lua_module: true easy_en/wordninja_rs_lua_module_path: "wordninja.dll" 因为 经过测试 Windows 绝对路径不生效,不能这么写: "C:/rime-easy-en-master/wordninja.dll" 。而是应该用 Rime 的工作目录 "程序文件夹“作为 linux 的“相对根目录”,在这里使用相对文件地址就可以了: (plum 明明说 C:\Windows\System32 是工作目录,害我尝试了好半天,才发现不是这里,也不是用户目录,而是程序文件夹) 9. 继续在 用戶文件夹里新建 rime.lua 填写……
local easy_en = require("easy_en") easy_en_enhance_filter = easy_en.enhance_filter 10. redeploy 到此 easy en 可以用题词器和连续自动增强了, 输入 thequickfoxjumpsoverthelazydog 会输出 the quick fox jumps over the lazy dog . 11. 但是我想使用双拼方案拼音加加和英文输入,给双拼添加 easy en 混输 创建 double_pinyin_pyjj.custom.yaml,向里面填入 # Rime schema # encoding: utf-8

patch:
  __include: easy_en:/patch
  easy_en/initial_quality: 0

此时就可以混输了,例如: tijkcomment 会提示:提交comment ,虽然不是全自动的,但也极大的方便了切换

NomandChan avatar Jul 12 '22 07:07 NomandChan