Terminal

自定義回滾緩衝區導航鍵

  • June 21, 2020

我正在使用基於 VTE 的終端。通過在 bash 會話中手動發送以下命令,我看到回滾緩衝區向上移動了一行,因此我非常確信轉義序列是正確的:

printf "\e[2T"

然後我將它添加到我的.inputrc但它不起作用。我嘗試了各種鍵和轉義序列的組合但沒有成功:每當我按下CTRL``k它時,它就會退出 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"

正如@egmont 在評論中強調的那樣,用於滾動回滾緩衝區的鍵綁定是硬編碼在 libvte 中的

有一些基於 vte 的終端,例如terminatortilix,允許自定義鍵綁定以管理回滾緩衝區。我不知道這是如何實現的,但是在我自己測試之後,我可以確認這正是我想要的。

引用自:https://unix.stackexchange.com/questions/587980