如何在 gnu screen 中设置 ctrl page up 和 ctrl page down 的键绑定?

如何在 gnu screen 中设置 ctrl page up 和 ctrl page down 的键绑定?

因此,ctrl 向上和向下翻页现在非常流行,我希望当我按下 ctrl-pgup 和 down 时能够在 gnu screen 中进行 Cp 和 Cn。我试了又试,但文档有点少。有什么想法吗?

答案1

事实证明你可以做到。我终于明白了。

有了这个帮助...

https://unix.stackexchange.com/questions/76566/where-do-i-find-a-list-of-terminal-key-codes-to-remap-shortcuts-in-bash

我将其添加到~/.screenrc

bindkey -t ^[[5;7~ prev
bindkey -t ^[[6;7~ next

这让我可以在屏幕标签之间移动++ CtrlAltPageUp/Down

答案2

controlpageup取决于特定的终端,但你感兴趣的大多数终端都复制了 xterm 的其中一种风格。它们看起来像

^[[5;5~

或者 terminfo 格式

\E[5;5~

也就是 6 个字符。

然而,屏幕(见14.1 bind 命令来自屏幕手册)说它只知道如何绑定单个字符。

所以答案是:你不能用屏幕来做到这一点。

答案3

您可以使用以下方式轻松定义它bindkey命令

bindkey -t <key-code> <command>

它允许您将任意键映射到任意命令。要切换到上一个和下一个窗口,请使用命令prevnext

的键代码PageDown^[[5~PageUp ^[[6~,因此要使用这两个键切换窗口,请将以下内容添加到您的~/.screenrc配置中:

bindkey -t ^[[5~ prev
bindkey -t ^[[6~ next

要添加Ctrl修饰符,请添加;5到密钥代码中:

bindkey -t ^[[5;5~ prev
bindkey -t ^[[6;5~ next

对于Alt修饰符,添加;3,对于Ctrl+ Alt,添加;7

-t参数禁用计时器,因此按下各个键之间可能会有时间差距。

找出关键代码

在不同的系统或终端上,按键代码可能有所不同。要查找确切的代码,请执行showkey -a并按下您感兴趣的键或组合键,程序将在第一列打印它们的代码。

答案4

问题中的标题文本询问 ctrl+pageup 和 ctrl+pagedown,但所选答案提到 alt+ctrl。以下是 xterm 如何读取 ctrl+pageup 和 ctrl+pagedown。

~/.screenrc

# ctrl+pgup = prev
bindkey -t ^[[5;5~ prev
# ctrl+pgdn = next
bindkey -t ^[[6;5~ next

相关内容