pyim 做了极大的重构,欢迎大家抓 bug

如果不深度定制使用pyim的话,升级也问题不大,不过可能会有bug,因为重构替换了好几十次,难免有一些犄角旮旯的功能出bug

这次重构,主要是简化内部逻辑,功能和原来没有变化

支持 动态调整待选字的顺序 这个功能么?我的一直是不调整的呀。

如果再支持自动上屏就好了,研究了下不知道怎么搞!

五笔有自动上屏功能

很好用的输入法,配合 exwm-xim 的话,不用再装别的输入法了。

不过是不是没办法向 minibuffer 输入中文?

可以的,minibuffer也可以

喔,对,我设置了 minibuffer 行数固定为1,这样就看不到候选。。。


我意识到可以让 pyim 在 minibuffer 输入时,将候选显示在 mode-line (如果存在),eldoc 是这样设计的(eldoc-minibuffer-message)。

我仿照你的代码写了一段input-method-function,不过有地方不明白,想请教一下。下面的代码,普通 buffer 是没问题的,但 exwm 的 buffer 的 minibuffer 显示不出任何东西。我看你的代码似乎并没有做什么特殊处理?

          (lambda (key)
            (if (or buffer-read-only
                    overriding-terminal-local-map
                    overriding-local-map)
                (list key)
              (let ((message-log-max nil)
                    (yank-list (funcall make-yank-list (window-width))))
                (cond ((string= (buffer-name) " *temp*") ;; exwm-xim
                       (message "%s" (char-to-string key))) ;; show nothing in minibuffer
                      (t (message "%s" (char-to-string key)))))
              (list key)))

原因在于我这里flymake--mode-line-format会报错wrong-type-argument hash-table-p nil,然而我开启toggle-debug-on-error又捕捉不到。。。不知怎么 pyim 不会受影响。。。还是不能依赖 minibuffer 显示。