pyim 代码重构了,用的同学注意一下

请问五笔要配置些什么,我看拼音配置了好些行

看看pyim的readme吧

README看了,您的个人配置也看了下,不知道是不是只有 pyim-default-scheme 这个参数不同。

你还需要安装和启用pyim-wbdict包,然后运行pyim-restart

我在Win7 DOOM下用,这是目前配置,modeline提示有 PYIM了,但不能输入中文。

(use-package! pyim
  :after-call after-find-file pre-command-hook
  :init
  (setq default-input-method "pyim"
        pyim-dcache-directory (concat doom-cache-dir "pyim/"))
  :config
  (setq pyim-default-scheme 'wubi
        pyim-page-tooltip t)

  ;; pyim 探针设置
  (setq-default pyim-english-input-switch-functions
                '(pyim-probe-dynamic-english
                  pyim-probe-isearch-mode
                  pyim-probe-program-mode
                  pyim-probe-org-structure-template))

  (setq-default pyim-punctuation-half-width-functions
                '(pyim-probe-punctuation-line-beginning
                  pyim-probe-punctuation-after-punctuation))

  ;; 开启拼音搜索功能
  (pyim-isearch-mode 1)

  ;; 设置选词框的绘制方式
  (if (posframe-workable-p)
      (setq pyim-page-tooltip 'posframe)
    (setq pyim-page-tooltip 'popup))

  ;; 显示5个候选词。
  (setq pyim-page-length 5)

  ;; emacs 启动时加载 pyim 词库
  ;; (add-hook 'emacs-startup-hook
  ;;           #'(lambda ()
  ;;               (pyim-restart-1 t)))
  (require 'pyim-wbdict)
  (pyim-wbdict-v86-enable))

按 C-\ 打开输入法,按 k不会输入中文。


找到答案了,是 pyim-english-input-switch-functions强制某些地方输入英文,某些地方输入中文的原因。

现在想知道中英文混合输入有没有什么tips,是必须 C-\切换输入法吗?

谢谢,现在能用了。只是不知道中英文混合输入时候有没有什么快捷操作。用了一段时间 smart-input-source ,但win7下有点卡卡的,不过它的中英文混合输入好用。


这个帖子有个探针不错,但变量 pyim-entered-code 已经被重构了。

你看看pyim-probe.el文件,我记得这个探针合并到里面了,中英文自动切换原理都类似,你甚至可以在pyim里面使用emacs-rime的预测函数

yim-probe-auto-english

在minibuf里是不能输入中文吗?我用swiper,org-noter的org-noter-insert-note时,按C-\都不能输入中文。


不知道什么原因,C-\在minibuff不能打开输入法,暂时将ivy的M-i去掉,然后在minibuff中使用.pyim-convert-code-at-point,(M-i),这样可以开启输入法。

(map! (:map override "M-i" 'pyim-convert-string-at-point))

可能你不小心启用某个probe了

pyim-probe-isearch-mode

去掉这个试试

五笔,仓颉,并且自己维护个人词库的同学们要注意,注意,注意,最新的pyim由于code-prefix调整,需要更新词库文件。比如: 五笔需要require pyim-wbdict,并把.改成wubi/

使用pyim-wbdict和pyim-cangjie5dict的同学不受影响,因为我已经更新写两个包,

至于为什么更改code-prefix,原因是为了防止词库冲突,以前有问题的设计带来的技术债 。。。。哎

2 个赞

是最新的更新吗?我是前天从github clone的

今天更改提交的

pyim-convert-code-at-point这个函数好像不在了

pyim-convert-string-at-point ,这个命令早就废弃了

sorry,我是在pyim-probe-dynamic-english 函数中还出现,并且绑定了M-i,所以前天绑定成这个了。


五笔造词不知有没有好的方案,以前用外置输入法感觉造词很麻烦,现在可以很快了。目前我用这个函数手动造词,全绑定到一个按键:

(defun lld/pyim-convert-string-at-point (&optional arg)
  "造词或者将编码转换成汉字。

1. 选中区域,造词
2. arg+1 造2字词,3字词,等等,如为负数,删除最近造的词
3. 转换光标前 code 为汉字"
  (interactive "P")
  (if (region-active-p)
      (pyim-create-word-from-selection)
    (if (null arg)
        (pyim-convert-string-at-point)
      (let ((n (prefix-numeric-value arg)))
        ;; 负数
        (if (< n 0)
            (pyim-delete-last-word)
          (setq n (+ (ceiling (log n 4)) 1)))
        (pyim-create-word-at-point n)))))
1 个赞

emacs就是这样,不满意就造 :smile:

我刚刚升级到新版本,造词功能不起作用了。我把缓存全部删除也不行


导出的词库也少个回车

这个不应该啊,这块代码好像没动啊? 你用 emacs 打开这个文件看看