liberime 做了比较大的调整,有问题的同学及时反馈

sel-start, sel-end, cursor-pos 在 preedit 中的位置都可以确定出来。 不知道在pyim中有没有什么特别处理,但是emacs-rime里面可以做到和fcitx-rime或ibus-rime一样的逻辑。

liberime-string-length [quote=“cxb811201, post:9, topic:12127, full:true”] 我觉得应该给一下自行设置iberime-core.so路径的变量 [/quote]

已经添加

遇到一个关于词库的问题.

2020-03-10-201335_316x68_scrot

通过翻页选择了 “子进程”, 但是当我第二次输入 zijincheng 时. “子进程” 并没有出现在候选项中. 如下图所示:

2020-03-10-201453_360x68_scrot

系统中的 fcitx-rime 工作正常:

2020-03-10-202506_253x66_scrot

相关的配置:
(use-package liberime
  :straight (liberime
             :type git
             :host github
             :repo "merrickluo/liberime"
             :files ("CMakeLists.txt" "Makefile" "src" "liberime*.el" "liberime-config.el")))
(use-package pyim
  :straight t
  :demand t
  :init
  (liberime-load)
  (setq default-input-method "pyim")
  :config
  (use-package pyim-basedict
    :straight t
    :ensure nil
    :config (pyim-basedict-enable))
  (use-package posframe
    :straight t
    :init (require 'posframe))
  (setq pyim-punctuation-translate-p '(no auto yes)
        pyim-default-scheme 'rime
        ;; pyim-punctuation-dict nil
        pyim-page-tooltip 'posframe
        pyim-page-length 5)
  (setq-default pyim-english-input-switch-functions
                '(pyim-probe-dynamic-english
                  pyim-probe-isearch-mode
                  pyim-probe-org-structure-template))
  (setq-default pyim-punctuation-half-width-functions
                '(pyim-probe-punctuation-line-beginning
                  pyim-probe-punctuation-after-punctuation))
  :bind
  (("C-\\". toggle-input-method)
   ("M-k" . pyim-convert-string-at-point)
   ("C-;" . pyim-delete-word-from-personal-buffer)
   ("M-'" . pyim-punctuation-translate-at-point)))

~/.emacs.d/rime/default.custom.yaml 直接从fcitx中复制过来的:

patch:
  schema_list:
    - schema: double_pinyin_flypy  # 小鶴雙拼
  key_binder/bindings:
    - { when: paging, accept: bracketleft, send: Page_Up }
    - { when: has_menu, accept: bracketright, send: Page_Down }
    - { accept: "Shift+space", toggle: noop, when: always}
    - { when: always, accept: "Control+space", toggle: ascii_mode }
  ascii_composer/good_old_caps_lock: true
  ascii_composer/switch_key:
    Shift_L: noop
    Shift_R: commit_code
    Control_L: noop
    Control_R: noop
  "switcher/hotkeys":
  - "Control+grave"

有可能是pyim rime集成的限制

这种如果遇到这种情况,可以试试辅助输入法,按tab试试

换成pyim内置的双拼了. 说起来更新之前用旧版的liberime还没啥问题来着

才发现还留着之前的备份 :rofl: 回到旧版词库就没问题了


:confused: 还是解决不了, 新版本的词库确实是更新了, rime中能看到目录, 但是不知道为什么无法更新. 先停留在旧版本吧.

很奇怪啊,我切换到doom的话就没有这个问题了。是pyim又更新了吗。切换回来包都是重新下载的了。

Snipaste_2020-03-12_11-17-02

虽然“子进程”总是排在第二个。用pyim倒也不难解决。

doom
(use-package! liberime
  :load-path "/home/zhscn/pkg/liberime"
  :init
  (require 'liberime)
  :config
  (liberime-select-schema "double_pinyin_flypy")
  (setq pyim-default-scheme 'rime))

嗯,暂时没想到怎么让rime记住多选生成的词条,现在保存到 personsl cache了

1 个赞

这段时间我一直想把这个输入法弄成可以输入 yank 历史的东西。Personal cache 是一种可能方式。这个 cache 会不会存到磁盘上?

会保存到磁盘,一般在.emacs.d/pyim/dcache/

@tumashu 大佬,形码不支持?我的算是是小鹤音形吧…

通过rime间接支持,pyim内置不支持,因为没有人维护词库

我就是用的 rime,通过 liberime 来的,双拼没问题,音形就不行了…我再看看 log 吧

来试试

我就是用的音形码。

我这里可以啊,不过我用的不是小鹤,是自然码,当然,要自己找码表

音型有什么反应?

“小”的音形是 xnld。我选“小”,在 emacs 里面还会有 ld。在 Squirrel 里面,选完可以继续输入。

可能我的 Rime 配置是自己瞎配的…

应该是pyim这边的问题,输入截取算法的问题,

谢谢大佬,我看看。目前还在看 ReadMe 思考到底是怎么配置,比较菜。