欢迎尝试 emacs-rime,计划中功能已全部完成。

哦哦,那能单独在deft里设置rime显示为minibuffer吗,我自己先研究一下试试看。emacs rime 真的很好用,特别是断言很舒服,最近写论文用这个可太爽了,感谢大佬的成果

我觉得大概是这样

(make-variable-buffer-local rime-show-candidate)
(setq-default rime-show-candidate 'posframe)

;; 在 deft-mode-hook 里面
(setq-local rime-show-candidate 'minibuffer)

我用了几天emacs rime已经有依赖性了,打算过段时间试试exwm之类的插件,就能全局emacs rime了

没有用过 exwm,所以不排除 exwm 里面不能用的可能性。

好的,谢谢大佬迅速的帮助,我明天起床后就测试一下。

大佬也早点休息哇,写出神奇插件的大佬早睡早起某种程度上也是对社区很大的贡献:joy::joy:

:sweat_smile:过奖了,多谢关心!

感谢大佬,同时问一个问题,目前的插件运行的非常的好,但是在org agenda view的状态下,还是中文法输入的状态,比较麻烦,不知道怎么处理,个人配置如下:

(sis-ism-lazyman-config “1033” “2052” 'im-select)

;;为了方便在org mode方便输入中文,尤其是在org-capture的状态下,设置成other

(setq sis-context-fixed 'other)

;; enable the /cursor color/ mode

(sis-global-cursor-color-mode t)

;; enable the /respect/ mode

(sis-global-respect-mode t)

;; enable the /follow context/ mode for all buffers

(sis-global-context-mode t)

;; enable the /inline english/ mode for all buffers

(sis-global-inline-mode t) )

这是 sis? 你可能需要问 smart-input-source 的作者。。。

哦 错了 :sweat_smile:

:gift: :gift: :gift: :gift: :gift: :gift: 赞赞赞!真的是太好用啦,感谢作者。 而且有很详细的文档。 windows wsl1+emacs27.1+spacemacs用户,基本安装测试ok,还没深度使用。 :gift: :gift: :gift: :gift: :gift: :gift:

用msys2可以用系统输入法,但是emacs本身莫名奇妙的卡。换了wsl启动速度没变,不过emacs启动后很流畅。问题是wsl gui系统输入法用不了!!!内置输入法是刚需,不仅解决了问题,还比用系统输入法强大太多了。 :grin: :gift:

没有成功,我设置了全局minibuffer候选也无法用rime输入中文,也许是doom的问题,我晚些有空了再debug一下。如果有人能成功在deft中用emacs rime输入中文可以分享一下技巧,这么神奇的插件不能用有些可惜

我这里是可以输入的。但是如果是顶功方案的话会有些问题。deft 上面如果要搞的话,可能要特别的加一些 patch 才能用。我还没有想好要不要搞,因为最近也没有再用 deft 了。

@DogLooksGood 目前emacs-rime 在minibuffer中还是没法正常输入中文吗? 我在 I-search 下有时想输入中文进行搜索,但是输入候选后再按空格,发现只接受了一个空格。

可以的啊,在 minibuffer 中切换之后应该是能正常用的。我经常这样干

我这边在minibuffer中输入中文时,候选只显示单个按键的预选。按空格确定后就只接受空格。
比如下面的图中,我只输入了k和j:

emacs-rime 用的是当前最新版本,liberime 是liberime-v0.0.6-windows-x86_64 @DogLooksGood 下面这段动画,可能看的比较清楚。不知道有能否看出问题? rime
PS: M-x 下可以正常输入。

@DogLooksGood 关于 (setq rime-posframe-fixed-position t) 和 window-margin 不兼容的问题,我找到一个比较好的解决方法。只需要在493行 扩展一个变量rime-current-window-margin,用于读取当前windows的margin参与偏置计算。如下:

(defvar rime-current-window-margin 0)

(defun rime--posframe-display-content (content)
  "Display CONTENT with posframe."
  (if (and (featurep 'posframe) (display-graphic-p))
      (if (string-blank-p content)
          (posframe-hide rime-posframe-buffer)
        (let*
            ((preedit (rime--current-preedit))
             (x (cond
                 ((not rime-posframe-fixed-position) 0)
                 ((not preedit) 0)
                 ((not (overlayp rime--preedit-overlay)) 0)
                 (t (rime--string-pixel-width preedit)))))
          (apply #'posframe-show rime-posframe-buffer
                 :string content
                 :x-pixel-offset (- rime-current-window-margin x)
                 :background-color (face-attribute 'rime-default-face :background nil t)
                 :foreground-color (face-attribute 'rime-default-face :foreground nil t)
                 rime-posframe-properties)))
    ;; Fallback to popup when not available.
    (rime--popup-display-content content)))

然后在rime的个人配置中,用户根据需要设置以下hook:

(add-hook 'window-configuration-change-hook
          #'(lambda ()
              (setq-local rime-current-window-margin
               (if (numberp (car (window-margins)))
                   (* (car (window-margins)) 13)
                 0))))

我在Windows 和 Mac平台测试过,工作正常。
不知道有没有更好的方法将这个值引入emacs-rime?

isearch 在输入时其实没有使用 minibuffer。要输入中文可以 M-e 切换到 minibuffer 再进行编辑

2 个赞

感谢分享,还还真是这个原因。 :+1:
ps : 感觉可以更新一下Readme中的FAQ了,那里还是建议使用phi-search