emacs有时候按一个按键会变成好多按键,该怎么排查?

我测试的时候还是会出现。。特别是 company 补全卡住的时候

好烦,emacs-plus@28, nix, 包括自己编译的都还有这个问题,虽然新版本出现的概率低了很多,但碰上了还是好烦,先换回 27 了

我之前测试的时候是输入英文的时候复现百分之百,最近发现输入中文的时候容易出现,蛋疼的问题,看来还是没解决掉,只不过是概率低了而已

这个问题最近出现得好频繁啊,有人有什么解决方案吗?

换一套 emacs 的配置试试呢?我也不确定是 doom 的问题还是之前 emacs 的问题。反正现在换了一套配置+emacs经常编译最新的,已经很久没出现这个问题了

你现在是基于啥配置改的?

基于以下两个自己精简了一下

我把doom里面的indent-guides这个模块暂时去掉了以后好像就没有再出现过了

indent-guides 我很早之前就去掉了,这个包我用起来一直很卡
我觉得连击的触发条件应该是在卡顿的时候有输入,可能你去掉那个包之后变流畅,导致卡顿+输入这个条件一直没有触发出来

我最近用 GitHub - jimeh/build-emacs-for-macos: Somewhat hacky script to automate building of Emac.app on macOS. 编译的 emacs,感觉比 emacs-plus 流畅一点

indent-guides去掉以后Emacs流畅了好多,我之前用brew安装了好几次emacs-plus,但是用下来的感觉都不如我自己直接拉master上的源码编译的Emacs来得流畅,也不知道是为啥原因

这个包就是会卡的,我也不用它了。Mac 上我装的 native comp 版本的 emacs-plus,感觉还行。

没用 indent-guides, lsp-mode + 稍微大点的 rust 项目,输入的时候偶尔会有卡顿。卡顿的时候如果用外置输入法 Squirrel 输入中文就会触发连击。

蹲一个解决方案,emacs-plus@28打字快了就这样

您好. 我也遇到这个问题了. C-h l 看到以下输入.

 <return>                   ;; newline
 w                          ;; self-insert-command
 a                          ;; self-insert-command
 w w                        ;; self-insert-command
 b                          ;; self-insert-command
 w w                        ;; self-insert-command
 c                          ;; self-insert-command
 w w                        ;; self-insert-command
 d                          ;; self-insert-command
 w w                        ;; self-insert-command
 e                          ;; self-insert-command
 w w                        ;; self-insert-command
 f                          ;; self-insert-command

这个问题. 不只是键入buffer字符会出现. 按快捷键也会触发. 比如我按 C-h l 实际触发的是C-h w 图片

从上面的记录看,不像是emacs的锅。多半是环境的问题。比如会不会是键盘坏了?这里问题只发生在w键上。或者你还可以看看有没有什么改键工具。如果你是在Windows下面的终端里跑,那有可能是终端的问题。

1 个赞

键盘没坏. 重启emacs就正常了. 当前是macos环境 10.15.7 (19H2) . native-comp 28.0.50

不只是w建. 之前碰到过其他按键. 在出现问题的emacs上,输入法里面也会出现那个键.

出现问题的时候, M-x describe-key 看到的是什么

'x' runs the command self-insert-command (found in global-map), which is
an interactive built-in function in ‘C source code’.

It is bound to many ordinary text characters.

(self-insert-command N &optional C)

其中 x 就是触发时候多按的那个建.

最近我也遇到好几次这种情况,都是在 gccemacs 28 on macOS 上,重启就emacs就好了。