如何找到`Shift + PageUp`/`Shift + PageDown`的转义序列?

如何找到`Shift + PageUp`/`Shift + PageDown`的转义序列?

如何找到Shift + PageUp/的转义序列Shift + PageDown

我在谷歌上搜索并尝试了一些建议,但总是发生的情况是,当我按下此键时,屏幕会向上/向下滚动,或者没有打印任何内容。

我正在尝试获取转义序列,以便可以将其分配给中的 PageUp/PageDown 函数多路复用器,当我在 TTY/虚拟控制台中时。你可能知道,最近Linux内核已删除此功能。

如果相关,Shift我在终端中使用的一些其他相关绑定韦兹术语:

{key='UpArrow', mods='SHIFT', action=wezterm.action{SendString='\x1b[a'}},
{key='DownArrow', mods='SHIFT', action=wezterm.action{SendString='\x1b[b'}},
{key='LeftArrow', mods='SHIFT', action=wezterm.action{SendString='\x1b[d'}},
{key='RightArrow', mods='SHIFT', action=wezterm.action{SendString='\x1b[c'}},

只需提供一个与上述转义序列精神相符的转义序列也可以。

答案1

为了找到这个,我首先抑制我的终端模拟器韦兹术语的默认键绑定~/.wezterm.lua,因此它们被传递到终端:

local wezterm = require 'wezterm';

return {
  disable_default_key_bindings = true,
  ...
}

然后我可以使用以下命令来获取转义序列:

$ showkey -a

Press any keys - Ctrl-D will terminate this program

^[[5;2~          27 0033 0x1b
         91 0133 0x5b
         53 0065 0x35
         59 0073 0x3b
         50 0062 0x32
        126 0176 0x7e
^[[6;2~          27 0033 0x1b
         91 0133 0x5b
         54 0066 0x36
         59 0073 0x3b
         50 0062 0x32
        126 0176 0x7e
^D        4 0004 0x04

所以他们是:

  • Shift + PageUp:\e[5;2~
  • Shift + PageDown:\e[6;2~

相关内容