搞定了。因为ubuntu默认的emacs不支持use module
最近在使用的时候遇到输入卡顿的问题,在此请教一下大家。
当输入的中文文本较多时,会出现明显的卡顿:
而当前展示的段落没有太多文字时,不会有次现象:
下面是卡顿时的 Profile 结果:
我使用的字体是:Sarasa Mono SC Nerd, 示例的 org mode下开启的minor mode包括:
请问有遇到相同问题的同学吗?如何解决呢? 先谢谢大家
--------------------------------------------------Update--------------------------------------------------------------
通过如下修改使用 minibuffer 显示备选词条后要好一些了:
(rime-show-candidate 'minibuffer)
但是输入依然不是特别流畅,无法达到与系统输入法一致的输入体验。
提供个内置的解决方案,按 M-e 进入编辑模式
doom 下的性能问题很玄学,我暂时没有好办法。
我遇到这种情况了, 巨卡无比.
求助作者,最近更新后遇到了奇怪的问题,先贴配置文件:
(use-package! rime
:custom
(default-input-method "rime")
(rime-show-candidate 'posframe)
(rime-posframe-style 'vertical)
(rime-user-data-dir "~/.doom.d/rime")
)
rime-user-data-dir
下主要的文件,default.custom.yaml
patch:
schema_list:
- schema: luna_pinyin_simp
"menu/page_size": 7
luna_pinyin_simp.custom.yaml
下只有一些模糊音设置,就不贴了。
我发现的问题是,当我输入单个汉字时,输出是正常的:
然而一旦输入词组时,就会变成繁体
请问是哪里设置出了问题?
另,由于对rime不是很熟悉,我想知道一般来说使用rime输入简体汉字的话,是不是一般还是采用luna_pinyin,但配置让它输出简体,还是说直接用luna_pinyin_simp就好?
用 luna_pinyin_simp ,luna_pinyin 的码表是繁体的,简体输出靠的是内置的 opencc 的转换。rime 的繁简转换一直不是太精确,直接用 luna_pinyin_simp 比较好,除非你是繁体用户,只是偶尔需要输出简体。
p.s. 这是我之前对 rime 的认识,最近有没有变化不太确定,一切以官方为主
谢谢 那我这单字简体词组繁体是啥毛病……
抱歉打扰,破案了。顺带记录一下排查问题的过程。
先是怀疑emacs-rime的问题,然后发现emacs-rime插件的上次更新时间在20天前,显然不是它引起的问题,时间节点对不上;然后又看了librime,发现也是类似的问题。由于我日常用的是Debian sid,可能软件比较新,那怀疑对象就比较多了,索性从零开始看看干净的配置有没有问题。
重新起了一个WSL,装了Ubuntu 20.04LTS,然后下载emacs27源码编译,装上doom emacs以及我自己的配置,以及一系列依赖一顿装,然后发现:Ubuntu 20.04LTS下的emacs,emacs-rime输入法没毛病?
然后回到我日常用的Debian sid上,emacs-rime输入中文的问题依旧,但sudo apt update && sudo apt full-ugprade -y
更新之后问题又消失了?
然后一看更新记录,libopencc
赫然在列,得,原来是简繁转换的部件出了问题。
感叹一下,自己抓问题的方法论和经验还是太缺了,这么小小一个问题昨天折腾到凌晨三点,还是得学习一个啊!
我去看了下官方的 scheme,发现我说错了,看起来他用的应该是内部的转换机制,luna_pinyin_simp ,luna_pinyin 用的码表是一样的 … 如果你还是用起来怪怪的,那你可以去网上找找有没有其他的码表可以用(这应该蛮多的)
這個說法似乎是錯誤的?
- 我實驗不同 installation 的 *.userdb.txt 會被同步
- 如果使用同一個 installation-id,那麼詞庫之外的配置不就互相覆蓋了麼?不可能這麼設計吧。
想问一下各位大神,我在wsl中使用emacs-rime,发现延迟比较严重, 我是使用VcXsrv 连接到WSL里的xserver,发现
- 默认英文没有延迟
- 开启emacs-rime 输入中文感觉有延迟
- 开启emacs-rime,使用rime-inline-ascii 后输入英文,延迟非常严重 想问一下该如何排查呢?
請問如何刪除錯誤的上屏詞,我按如下配置了 S-<delete>
, 但按的时候提示 rime-send-keybinding: Can’t send this keybinding to librime
(setq rime-translate-keybindings
'("C-`" "S-<delete>" "C-f" "C-b" "C-n" "C-p" "C-g" "<left>" "<right>" "<up>" "<down>" "<prior>" "<next>" "<delete>"))
先从相对干净的配置入手?我有在 wsl 上用过,感觉挺流程的,所以需要更多信息。
1, 并非所有按键都可以发送。2,我觉得就算发送了也做不到删上屏的词。
是 librime 的限制?好吧,是个遗憾。
感谢狗哥,经过排查,基本可以断定问题出在这个函数上,注释掉就正常了
(defun rime-evil-escape-advice (orig-fun key)
"advice for `rime-input-method' to make it work together with `evil-escape'.
Mainly modified from `evil-escape-pre-command-hook'"
(if rime--preedit-overlay
;; if `rime--preedit-overlay' is non-nil, then we are editing something, do not abort
(apply orig-fun (list key))
(when (featurep 'evil-escape)
(let* (
(fkey (elt evil-escape-key-sequence 0))
(skey (elt evil-escape-key-sequence 1))
(evt (read-event nil nil evil-escape-delay))
)
(cond
((and (characterp evt)
(or (and (char-equal key fkey) (char-equal evt skey))
(and evil-escape-unordered-key-sequence
(char-equal key skey) (char-equal evt fkey))))
(evil-repeat-stop)
(evil-normal-state))
((null evt) (apply orig-fun (list key)))
(t
(apply orig-fun (list key))
(if (numberp evt)
(apply orig-fun (list evt))
(setq unread-command-events (append unread-command-events (list evt))))))))))
(advice-add 'rime-input-method :around #'rime-evil-escape-advice)
这个函数是可以在开启rime的状态下按 “jk” 直接从evil的insert-state切换到normal-state
"<S-delete>"
这样写应该可以
也不行诶(同样输出Can’t send this keybinding to librime,mac平台,librime 1.7.1),你那里可以吗?