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

如果你设置 minibuffer 不好用的话,你试试 (setq rime-show-candidate 'message) 这个?

minibuffer 好使的,(setq rime-show-candidate 'message) 反而不好使。 我是想minibuffer 不用一直显示预选,而是我需要的时候手动按快捷键激活😄,这个需要看起来有点奇葩。没现成的话,我就先用minibuffer 了

ps: 我知道该怎么实现了,写个函数修改参数就可以了,需要的时候激活一下。

我记得一直是这样,我就将就用了 :joy:

呃,那这还真是个问题。感觉好像大部分的人都在用 ivy,所以这个问题没有暴露出来。

修复了一个在 org/markdown 的标题(如果标题是放大的)的中间嵌入文本大小不正常的 bug。

给emacs-rime提了个PR,主要是可以在Windows下,像在ArchLinux等安装librime很方便的系统上一样,只需要

scoop install gcc
scoop bucket add wsw0108 https://github.com/wsw0108/scoop-bucket.git
scoop install librime

后,在C-/切换到rime输入法时,如果动态模块没有编译,那么就像在Arch上一样自动编译,且成功加载动态模块及其依赖。

  • 基于emacs_dir这个Windows下特有的环境变量值,可以找到emacs_module.h这个头文件
  • 设置了Windows下正确可用的rime-share-data-dir初始值(需要scoop安装librime后)

@DogLooksGood

2 个赞

大佬好, 断言 rime-predicate-tex-math-or-command-p, 可以让 org-mode 中 输入公式的时候支持吗? 比如 在 “\(\)” 或 “\[\]” 中输入公式的时候, 默认是英文模式

  (defun rime-predicate-org-latex-p ()
    "If the cursor is after a string prefixed a special punctuation.
Can be used in `rime-disable-predicates' and `rime-inline-predicates'."
    (and (> (point) (save-excursion (back-to-indentation) (point)))
         (let ((string (buffer-substring (point) (max (line-beginning-position) (- (point) 80)))))
           (string-match-p "[\\]$" string)
                )))

暂时加上用 \ 取判断的方法, 可以用了

想问一下大佬们,minibuffer想输入中文,emacs-rime里怎么激活呀。用的wsl emacs

默认就支持啊,如果是 isearch 的话得按一次M-e

NICE,要多按一次 M-e 才出来,谢谢了!

大佬们, 有没有遇到 org 文件比较大的时候, 特别卡顿的情况? 我最近用 org 写东西比较多, 数学公式比较多, 特别卡顿, 另外, 使用的时候, minibuffer 会显示 “starting look process”, 不知道有没有关系, 用的是 doom-eamcs, 启用 posframe

不是大佬。

之前遇到过一个类似的问题,但是现在无法复现了。

我当时有一个设置,打开org-mode的时候,如果遇到某种语言的代码片段、且没有相应的process,则打开一个。当时在我的设置里,每一段代码就会打开一个新的process,特别卡。

不知道你是不是有此设置,供参考。

多谢, 我查一下是不是 tex 环境设置的问题

你觉得光标上下按住了移动的时候会卡吗

Windows WSL ubuntu 裏 用來emacs-rime 總報錯說什麼prefix說nil。這個怎麼辦?謝謝。

需要详细信息。

会卡, 刚开始不卡, 我写一些latex 公式之后, 就开始卡了

出了这个错误:

Debugger entered--Lisp error: (error "Variable ‘module-file-suffix’ is nil")
  signal(error ("Variable ‘module-file-suffix’ is nil"))
  error("Variable `module-file-suffix' is nil")
  rime--build-compile-env()
  rime-compile-module()
  rime-activate("rime")
  apply(rime-activate "rime" nil)
  activate-input-method("rime")

之前是没有gcc,无法编译。 现在编译好了。但是还是出错:

Debugger entered--Lisp error: (void-variable ELF)
  eval-buffer(#<buffer  *load*> nil "/home/kimim/.emacs.d/elpa/rime-20210117.342/librime-emacs.so" nil t)  ; Reading at buffer position 5
  load-with-code-conversion("/home/kimim/.emacs.d/elpa/rime-20210117.342/librime-emacs.so" "/home/kimim/.emacs.d/elpa/rime-20210117.342/librime-emacs.so" nil nil)
  load("/home/kimim/.emacs.d/elpa/rime-20210117.342/librime-emacs.so" nil nil t)
  load-file("/home/kimim/.emacs.d/elpa/rime-20210117.342/librime-emacs.so")
  (if (not (file-exists-p rime--module-path)) (error "Failed to compile dynamic module") (load-file rime--module-path) (if (rime--maybe-prompt-for-deploy) (progn (rime-lib-start (expand-file-name rime-share-data-dir) (expand-file-name rime-user-data-dir)) (setq rime--lib-loaded t)) (error "Activate Rime failed")))
  rime--load-dynamic-module()
  (if rime--lib-loaded nil (if (file-exists-p rime--module-path) nil (rime-compile-module)) (rime--load-dynamic-module))
  rime-activate("rime")
  apply(rime-activate "rime" nil)
  activate-input-method("rime")
  toggle-input-method(nil 1)
  funcall-interactively(toggle-input-method nil 1)
  call-interactively(toggle-input-method record nil)
  command-execute(toggle-input-method record)
  counsel-M-x-action("toggle-input-method")
  ivy-call()
  ivy-read("M-x " ("toggle-input-method" "rime-compile-module" "package-list-packages" "package-install" "package-delete" "load-library" "list-dynamic-libraries" "magit-clone" "toggle-debug-on-error" "load-theme" "jekyll" "find-function" "eval-print-last-sexp" "magit" "eshell" "org-mode" "grep-find" "modula-2-mode" "image-increase-size" "ag" "cd" "5x5" "arp" "day" "dbx" "dig" "erc" "ert" "eww" "ftp" "gdb" "irc" "jdb" "man" "mpc" "now" "orc" "orn" "oro" "orp" "oru" "pdb" "pwd" "rsh" "sdb" "wos" "xdb" "calc" "deft" "diff" ...) :predicate #f(compiled-function (x) #<bytecode 0xdcb005>) :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
  counsel-M-x()
  funcall-interactively(counsel-M-x)
  call-interactively(counsel-M-x nil nil)
  command-execute(counsel-M-x)