Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
burg1ar opened this issue Nov 29, 2021 · 14 comments
Open

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

burg1ar opened this issue Nov 29, 2021 · 14 comments
Labels
need more info Insufficient information to locate the problem

Comments

@burg1ar
Copy link

burg1ar commented Nov 29, 2021

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

@burg1ar burg1ar changed the title 手动部署,微软双拼无法开启中英混输 手动安装,微软双拼无法开启中英混输 Nov 29, 2021
@BlindingDark BlindingDark added the need more info Insufficient information to locate the problem label Nov 29, 2021
@burg1ar
Copy link
Author

burg1ar commented Nov 30, 2021

具体的操作步骤:

  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. 重新部署
    结果,中英混输没有生效
    我是否遗漏了什么步骤

@BlindingDark
Copy link
Owner

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

@burg1ar
Copy link
Author

burg1ar commented Nov 30, 2021

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:
    - "佛振 <chen.sst@gmail.com>"
  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
Copy link
Author

burg1ar commented Nov 30, 2021

另外,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

@BlindingDark
Copy link
Owner

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

@BlindingDark
Copy link
Owner

BlindingDark commented Dec 5, 2021

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

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

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

@burg1ar
Copy link
Author

burg1ar commented Dec 6, 2021

尝试:

  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
Copy link
Author

burg1ar commented Dec 6, 2021

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

@BlindingDark
Copy link
Owner

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

patch:
  engine/filters:
    - uniquifier

@BlindingDark
Copy link
Owner

BlindingDark commented Dec 6, 2021

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

@burg1ar
Copy link
Author

burg1ar commented Dec 6, 2021

好的,等周末我调一下

@burg1ar
Copy link
Author

burg1ar commented Dec 12, 2021

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

@burg1ar
Copy link
Author

burg1ar commented Dec 20, 2021

在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安装比较复杂,没有现成的软件包,就不测试了
这个问题暂时就这样吧,英文输入的需求也没那么大,感谢提供的帮助

@NomandChan
Copy link

NomandChan commented Jul 12, 2022

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 ,虽然不是全自动的,但也极大的方便了切换

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
need more info Insufficient information to locate the problem
Projects
None yet
Development

No branches or pull requests

3 participants