我正在尝试使用 emacs,并在 Windows 上的 mintty / Cygwin 中运行它。
我正在运行 emacs 版本 24.3.1。
我发现现在 emacs 默认使用临时模式文本选择,使用 Shift + 箭头键来选择文本,就像大多数现代 UI 一样。
但是,有一个键绑定在 mintty 中不起作用:Shift+Up。
我如何让它工作?
我认为 xterm 的 terminfo 设置有问题,这就是 mintty 所模拟的。
我使用esrshowkey
转储终端为 Shift-Up、Shift-Down 发送的内容:
^[ 1 ; 2 A shift-up
^[ 1 ; 2 B shift-down
xterm
我用 and 反编译了(不能正常工作)和rxvt
(在 rxvt 终端中运行时确实如此)的 terminfo 条目,infocmp -L xterm
并infocmp -L rxvt
注意到上面的序列被映射xterm
到key_sr
( kind
) 和key_sf
( kri
) -请参阅这些的定义伙计们在这里。但rxvt
没有这样的条目。
所以我调整了条目:
$ infocmp xterm > xterm.ti
应用此更改:
- kind=\E[1;2B, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- kri=\E[1;2A, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
+ kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+ mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
编译并安装更新的 xterm:
$ tic xterm.ti
这个在 emacs 中使用 Shift+Up 固定选择。