让终端使用 pageup/pagedown 而不是 shift-pageup/shift-pagedown?

让终端使用 pageup/pagedown 而不是 shift-pageup/shift-pagedown?

我已经厌倦了在 gnome 终端、命令行、终结器和 guake 等中使用 shift-pgup 来向上翻页。

有什么方法可以轻松地让这些应用程序使用直接的向上翻页和向下翻页键进行翻页?

答案1

恐怕这是不可能的,因为不会向命令行应用程序发送 PgUp/PgDown,这将导致其中一些应用程序无法使用。这是旧时代的 Unix 功能。

如果您想要更方便用户的滚动,我建议使用命令less。它的使用方式如下:

command-with-lot-of-output | less

这将使用less原始命令的输出启动命令。(*有关将输出传输到其他程序的更多信息,请参见这里

less可以使用箭头或 PgUp/PgDown 进行导航。为方便起见,它还提供搜索等功能(有关man less详细信息,请参阅)。您可以less按下q键退出。

答案2

控制台是一款提供相关选项的 KDE 终端模拟器,可配置使用Page UpPage Down键进行直接分页。我发现没有其他终端模拟器像 Konsole 一样易于进行此类自定义。

如何直接分页

在 Konsole 中,执行以下步骤。

  1. 在菜单栏中,转到“设置”,然后单击“配置当前配置文件...”(Kubuntu 12.04)或“编辑当前配置文件...”(Kubuntu 16.04),将出现一个窗口。

  2. 单击“输入”选项卡(Kubuntu 12.04)或“键盘”选项卡(Kubuntu 16.04),其中有一个名为“键绑定”的部分,其中包含预定义的键绑定列表。

Konsole 中的按键绑定

  1. 选择“默认(XFree 4)”并单击“编辑...”按钮,然后将出现另一个窗口。

  2. 向下滚动并查找PgDown-Shift-AnyModifier带有输出的组合键\E[6~。将此输出重命名为ScrollPageDown

  3. 向下滚动并查找PgUp-Shift-AnyModifier带有输出的组合键\E[5~。将此输出重命名为ScrollPageUp

  4. 单击“确定”按钮完成并关闭窗口。

如何测试输出

在步骤3中,有“测试区域”来确认每次按键的输出。

  • 单击以将焦点放在“输入:”文本字段中,然后按下Page UpPage Down键(一次一个)。

  • 确认输出与重命名后的输出相同。

    Konsole 中的按键绑定列表和测试区域

或者,编写一个简单的脚本来循环回显消息。我已将自己的脚本包含在内,如下所示。

  • 在文本编辑器中复制并粘贴以下代码行。

          #!/bin/bash
    
          echo "Started script"
          echo "If no input, then loop"
          while true
          do {
              echo "Hello, world"
              echo "Wait 1 second to loop [q to quit]"
              read -t 1 -n 1 INPUT && echo
              if [ "$INPUT" == "q" ]
                  then break
                  else echo "UTC now: $(date -u +%H%M%S)"
              fi
              continue
          }
          done
          echo "Ended script"
    
  • 保存为文件 ieloop.sh并在终端 ie 中运行脚本bash loop.sh(不可执行)。

  • 等待回显的消息填满查看区域并开始向下滚动输出。

  • 然后,按Page UpPage Down键向上滚动和向下滚动查看区域。

我已经在 Kubuntu 12.04 中使用 Konsole 2.8.5、KDE ​​4.8.5 进行了测试。

奖励:组合键和输出

好吧,为了澄清一下,我附上一个答案。有人可能会想,为什么我必须编辑这些组合键而不是其他组合键。我之前通过测试几种类型的键盘已经弄清楚了这一点。

以下是默认的组合键及其输出,它们是使用 Konsole 中的“测试区域”确定的。

对于主要的 Page Up/Page Down 键(包括需要按下Fn键的键盘变体,即 Fn+PgUp/Fn+PgDn):

  • 组合键:PgDown-Shift-AnyModifier 输出:\E[6~

  • 组合键:PgUp-Shift-AnyModifier 输出:\E[5~

对于辅助 Page Up/Page Down 键(终端中需要Shift键的默认快捷键,即 Shift+PgUp/Shift+PgDn):

  • 组合键:PgDown+Shift-AppScreen 输出:ScrollPageDown

  • 组合键:PgUp+Shift-AppScreen 输出:ScrollPageUp

请注意,主键和辅键的减号-和加号+在各个关键字之间有所不同。这些就是按键如何转换为等效字符的方式,至少在 Konsole 中是如此。

但是,我不确定其他终端仿真器是否真的能理解这些等效字符。这是我根据自己的经验所知道的。

结论

对于不喜欢处理各种配置文件和繁琐工作方式的高级用户来说,Konsole 很容易赢得您的青睐。似乎过去四年来没有人注意到 Konsole 和 KDE 提供的这种级别的定制。真奇怪。

答案3

使用xterm并调整键绑定(在 中~/.Xresources),如下所示:

xterm*VT100.Translations: #override \n\
    <KeyPress>Prior:scroll-back(1,page)\n\
    <KeyPress>Next:scroll-forw(1,page)\n\

gnome-terminal说 PageUp/PageDown 适用于终端内的应用程序,使用它们会引起混淆...

答案4

您可以more像这样使用命令:

command-with-lots-of-output  |  more

这将以更多内容启动您的命令原始输出。

more可以使用“空格”进行导航。只需按下空格键即可将命令的输出视为页面。

相关内容