Kde Konsole 吞并了 Shift-Left 和 Shift-Right

Kde Konsole 吞并了 Shift-Left 和 Shift-Right

emacs -nw我在 KDE 终端模拟器中以控制台模式运行konsole。在 Emacs 中,我从包中定义了 Shift-Left 和 Shift-Right,windmove以在缓冲区之间水平跳转。我看到的问题是konsole似乎吞掉了 Shift-Left 和 Shift-Right 键。 Shift-Up 和 Shift-Down 键正在工作。我用 Emacs 读取了接收到的按键Ctrl-h l,可以看到没有接收到 Shift-Left 和 Shift-Right 的按键,但是我得到了 Shift-Up 和 Shift-Down 的按键。

另一方面,我可以在内部运行 Emacs,xterm也可以在内部运行 es Emacs gnome-terminal,并接收 Shift-Left 和 Shift-Right 的正确键码:

 ESC [ 1 ; 2 C [windmove-right]
 ESC [ 1 ; 2 D [windmove-left]

看起来 KDEKonsole本身正在处理 Shift-Left 和 Shieft-Right 组合键,而不是转发它们。我进入Settings->Edit-CurrentProfile->Keyboard并编辑"Default (XFree 4)"个人资料。然而,定义 Shift-Left 和 Shift-Right 不会生效:

   Right+Shift \E[1;*C
   Left+Shift  \E[1;*D

并在“输入”对话框中进行测试,然后似乎会产生正确的输出:

在此输入图像描述

但是,如果我应用设置并再次输入 Emacs,我不会收到任何 Shift-Left 和 Shift-Right 字符。我也尝试添加 -AppScreen 和 +AppScreen 但结果相同。

另一方面,我可以在“默认 (XFree 4)”配置文件中看到 Shift+Up 和 Shift+Down 的映射:

   Up+Shift    ScrollLineUp
   Down+Shift  ScrollLineDown

这些键码以以下形式到达 Emacs:

  ESC [ 1 ; 2 A [windmove-up] 
  ESC [ 1 ; 2 B [windmove-down]

有谁知道为什么要特殊处理 Shift-Left 和 Shift-Right 以及如何让它们工作?

答案1

它们还被定义为全局 Konsole 快捷方式,用于切换到上一个/下一个选项卡。转到 Konsole 的“设置”->“配置快捷方式”并将其删除。

(我首先执行了此操作,然后执行您描述的步骤。我还必须重新启动 konsole 才能使更改生效;不确定您是否也需要重新启动。)

相关内容