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


12

我已经厌倦了shift-pgup来在gnome终端,命令行,终止符和guake等页面中向上翻页。

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

Answers:


9

恐怕这是不可能的,因为不会将PgUp / PgDown发送到命令行应用程序,这将使其中的一些不可用。这是Unix上不错的功能。

如果您想要更人性化的滚动,建议使用该less命令。它是这样使用的:

command-with-lot-of-output | less

这将从less原始命令的输出开始该命令。(有关管道输出到其他程序的更多信息,请参见:http : //www.dsj.net/compedge/shellbasics1.html

使用箭头或PgUp / PgDown可以浏览更少的内容。为了您的方便起见,它还提供了搜索功能以及更多信息(请参阅man less参考资料)。您可以less按一下q键退出。


3
我研究了这个问题,尽管您可以在命令控制台中映射100多个击键,但向上翻页和向下翻页不是其中的两个!
HDave 2012年

less不适用于仅在终端内容中向上/向下滚动,并且调用它比按shift键更方便。根本不是雅库布(Jakub)的错,但令人遗憾的是,这个问题没有答案。
乔纳森·哈特利

@HDave在xtermunix.stackexchange.com/questions/339160/…中是如何执行此操作的
威廉

1
@JonathanHartley在xtermunix.stackexchange.com/questions/339160/…中是如何执行此操作的
威廉

1

使用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适用于终端中的应用程序,使用它们会造成混乱...


那么为什么xterm支持该选项而不支持gnome终端?无论哪种方式,我都是既链接上面的答案又发布赏金的人,我没有给这个答案以赏金。
威廉

askubuntu.com/users/33577/liam-william糟糕,我直到最下面才读(最上面是剪贴板)。并且:足够公平!我不会告诉我:我试图发布支持我的gnome-terminal statemtent的URL,但是我发现的所有信息都已过时,即不存在链接...
aba

1

Konsole是KDE的终端仿真器,提供了相关选项,可以将其配置为使用Page UpPage Down键进行直接分页。对于这种定制,没有其他终端仿真器像Konsole那样容易找到。

如何直接分页

在Konsole中,执行以下步骤。

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

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

    Konsole中的按键绑定

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

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

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

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

如何测试输出

在步骤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"
    
  • 另存为文件,即loop.sh在终端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提供的这种定制级别。多么奇怪。


因此,我试图通过按shift键将组合键设置PgDown为出于某种原因似乎不起作用。
威廉

您是要删除默认快捷方式?如果清空出现场不工作,取代默认的输出ScrollPageDownScrollPageUp与以往所取代\E[6~\E[5~对于PgDown+Shift-AppScreenPgUp+Shift-AppScreen分别组合键。单击“确定”以应用设置很重要。
clearkimura

不,我不想在同时按下PgDown和PgUp的同时按Shift。我不相信这回答了问题。
威廉

您是说步骤4、5对您不起作用?奇怪。带有链接的屏幕截图是否可以显示您所看到的内容?
clearkimura

1
在Fedora 24上的Konsole 16.08.3中,它的工作方式就像一个魅力。有一些细微的区别-选项卡称为“键盘”而不是“输入”,但最下面的一行是显示如何重命名输出的部分。感谢您删除我所经历的10年之痒!++ 1 ...如果我能给+10,我会的。
Mike S

-2

您可以使用如下more命令:

command-with-lots-of-output  |  more

这将使您的命令原始输出更多。

more可以使用“空间”进行导航。只需按空格,然后以页面形式查看命令的输出。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.