自定义回滚缓冲区导航键

自定义回滚缓冲区导航键

我正在使用基于 VTE 的终端。通过在 bash 会话中手动发送以下命令,我看到回滚缓冲区向上移动了一行,因此我非常有信心转义序列是正确的:

printf "\e[2T"

然后我将其添加到我的.inputrc但它不起作用。我尝试了各种按键和转义序列的组合,但没有成功:每当我按下它时CTRLk,它就会退出 vi 插入模式,仅此而已。

这是我的完整版.inputrc

set editing-mode vi

# Line cursor in editing mode, block cursor in command mode
set vi-ins-mode-string \1\e[5 q\2
set vi-cmd-mode-string \1\e[2 q\2
set show-mode-in-prompt on

set keymap vi-insert
Control-l: clear-screen
Control-k: "\e[2T"
Control-j: "\e[S"

set keymap vi-command
Control-k: "\e[2T"
Control-j: "\e[S"

答案1

正如 @egmont 在评论中强调的那样,用于滚动回滚缓冲区的键绑定硬编码在 libvte 中

有一些基于vte的终端,例如终结者或者蒂利克斯,允许自定义用于管理回滚缓冲区的键绑定。我不知道这是如何实现的,但是经过我自己的测试,我可以确认这正是我想要的。

相关内容