终端使用 Emacs,光标在第一行或最后一行持续上滚动或下滚动,会连续输入一串 “OA” 或 “OB” 字符

Macos Terminal

emacs -q

开 xterm-mouse-mode

2 个赞

一样的除了字符变了

估计是 macos 终端的 bug,建议换 xterm。

用 C-h k 看看滚动的时候输入了什么进去。我记得好像是会输入 M-[

C-h k 的话就是 up 和 down

C-h l 看到是 “ESC O A” 和 “ESC O B”

把 M-[ 的 keybinding 去掉试试

还是一样的

用的是 iterm2 吗?

不是,是自带的 Terminal

建议你试试 iterm2,我在 iterm2 用 emacs 没遇到过你的问题。

一样的

那就不清楚了。我这边都是正常的。我最近用的是 Emacs 29.0.50 和 28.0.50

不过我主要是用 GUI 得 Emacs,很少在终端下用 Emacs

我需要终端版的没办法 :sweat_smile:

找到个文档:

“ …most terminals the arrow-keys send an an escape sequence (starting with the ESC character) to the host…”

https://www.csse.uwa.edu.au/programming/linux/Linux-HowTo-9/Text-Terminal-HOWTO-16.html

iTerm 开启 “Scroll wheel sends arrow keys when in alternate screen mode” 似乎可以避免这个问题,但是用 osascript 开 iTerm 运行脚本会遇到 “ A session ended very soon after starting” 的问题 :sweat_smile:

快换 xterm,终端下使用 Emacs 用 xterm 最轻松。macOS terminal 和 iterm 与其他冒充 xterm 的山寨版绝对做不到原版的效果。

我用 Mituharu macport 就没这问題。

mac port 没有碰 tty 端,一定是 2unc 和你的配置有区别。

我之前遇到类似问题,然后这样运行: env TERM=xterm-256color emacs -nw , 这样方向键移动就没有出现额外字符。