我已经厌倦了在 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 Up和Page Down键进行直接分页。我发现没有其他终端模拟器像 Konsole 一样易于进行此类自定义。
如何直接分页
在 Konsole 中,执行以下步骤。
在菜单栏中,转到“设置”,然后单击“配置当前配置文件...”(Kubuntu 12.04)或“编辑当前配置文件...”(Kubuntu 16.04),将出现一个窗口。
单击“输入”选项卡(Kubuntu 12.04)或“键盘”选项卡(Kubuntu 16.04),其中有一个名为“键绑定”的部分,其中包含预定义的键绑定列表。
选择“默认(XFree 4)”并单击“编辑...”按钮,然后将出现另一个窗口。
向下滚动并查找
PgDown-Shift-AnyModifier
带有输出的组合键\E[6~
。将此输出重命名为ScrollPageDown
。向下滚动并查找
PgUp-Shift-AnyModifier
带有输出的组合键\E[5~
。将此输出重命名为ScrollPageUp
。单击“确定”按钮完成并关闭窗口。
如何测试输出
在步骤3中,有“测试区域”来确认每次按键的输出。
或者,编写一个简单的脚本来循环回显消息。我已将自己的脚本包含在内,如下所示。
在文本编辑器中复制并粘贴以下代码行。
#!/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"
保存为文件 ie
loop.sh
并在终端 ie 中运行脚本bash loop.sh
(不可执行)。等待回显的消息填满查看区域并开始向下滚动输出。
然后,按Page Up和Page 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
可以使用“空格”进行导航。只需按下空格键即可将命令的输出视为页面。