大佬们有没有遇到类似问题的?
最新的macOS和Emacs(Doomemacs + evil),长期以来在终端使用Emacs时都会出现这个问题(但系统自带Terminal.app可以正确识别快捷键)。
正常比如点击C-b
是不导出标题,C-s
是导出当前子树,但在TUI里这一系列的快捷键都不好使。
换过iTerm2、Kitty、Ghostty,都没能解决问题,或者短期内问题解决但过了一阵子又出现了。
大佬们有没有遇到类似问题的?
最新的macOS和Emacs(Doomemacs + evil),长期以来在终端使用Emacs时都会出现这个问题(但系统自带Terminal.app可以正确识别快捷键)。
正常比如点击C-b
是不导出标题,C-s
是导出当前子树,但在TUI里这一系列的快捷键都不好使。
换过iTerm2、Kitty、Ghostty,都没能解决问题,或者短期内问题解决但过了一阵子又出现了。
说得太模糊了
呃,TUI是指终端里的Emacs,Emacs自带一个函数 org-export-dispatch
,默认绑定到C-c C-e
,这个函数会打开一个分层菜单,这个菜单里包含一组导出相关的选项,通过输入字符选择需要导出的格式,同时有一组开关,用来切换Body only
,Export scope
等,这组开关的切换是绑定到C-b
或C-s
这样的快捷键的,如果遇到不认识的输入,Emacs会输出一个Invalid Key
的提示。在GUI(即图形界面)的Emacs里,Ctrl
开头的快捷键是好使的,但很多终端里就不行,macOS自带的Terminal.app可以正确识别,但iTerm2、Kitty和Ghostty我自己测试都不行。
可以检查下自己各个终端的 TERM
环境变量是多少
这个有关系吗?
我自己修改了下Ghostty的TERM,export TERM=ansi
,除了颜色以外并没有改变什么。
俺上次出现类似的问题是因为 tmux
中的 TERM
变量有问题,不过看你列出的结果应该都是设置正常了的,有点摸不到头脑了…
有试过在各个终端通过 cat
指令以及在 emacs 通过 describe-key
函数对比输入是否一样吗?(比如用 C-1
这种比较吊柜的键试试)
在我这里在 org 文件里按 C-c C-e
能够正常的弹出 export 窗口 (ghostty, kitty) 然后再按 C-b
C-s
也能够正常的 toggle 选项。我也使用 evil。
建议可以排查一下是否是 doomemacs 配置出了问题。可以从 emacs -Q 开始排查。
我有一个用于 debug 的 minimal 配置,仅设置了极简的配置,调整了一些不调整没办法用的配置。使用方式如下 emacs -Q -nw -l minimal-init.el
.
这个问题只有在Export Dispatcher里才出现,通过describe-key
在GUI和TUI里输入不同快捷键的结果都是一样的。
感谢老哥,基本可以确认是doomemacs的配置出了问题。
感谢@milan-glacier 指导,目前定位到是doomemacs的:osx tty
这个模块的问题,把这个模块去掉就正常了。
这个模块的主要功能是让终端里的Emacs可以和系统剪贴板通信,目前我还在找替代方案。