如何将终端向后滚动到最后一个命令的位置?

kra*_*r65 14 bash terminal command-line scroll

我有一个有很多输出的程序.一旦完成,我经常想回滚到运行的开始,以便我可以看到那里的一些东西.由于输出很长,我看到自己无休止地使用PageUp滚动并尝试将右侧的滚动条拖动到可能已经开始的位置.过了一段时间,这开始变得非常无聊,所以我想知道:

有没有办法让终端滚动回到最后一个命令的部分?

小智 13

我刚在OSX的终端中发现了这个:

编辑>导航>跳转到上一个标记:cmd + UP.

  • 这个选项很棒,希望我能在Linux终端中找到一个等效的选项。 (3认同)
  • 如果在运行上一个命令和跳转到上一个标记之间调整终端窗口的大小,它将不准确。我假设之前的标记是基于行的,因此跳转将返回到该行,现在是基于新窗口宽度的不同内容。 (2认同)

caa*_*rrl 9

在装有 iTerm2 的 MacOS 上:

\n

您必须安装 Shell 集成(iTerm -> 安装 Shell 集成),然后打开一个新选项卡。

\n

按\xe2\x8c\x98+ Shift+Up跳转到最后一个标记。也可以在“编辑”->“标记和注释”->“下一个标记”下找到。

\n

  • 我想这只有在你先设置一个标记的情况下才有效,对吗?快捷键为 ⇧+⌘+M。 (2认同)

sir*_*ius 6

我在macOS中使用iTerm2,我想出了一个方法。首先,您应该确保检查Unlimited scrollbackiTerm2 的首选项。 在此输入图像描述

在终端中运行命令并获得很长的输出后。

按Cmd+ F(在Windows中可能是ctrl+ F)然后你可以在终端中搜索,如下所示:

在此输入图像描述

最后,只要搜索你的用户名并按Enter,一般来说你会跳到最后一个命令:

在此输入图像描述

  • 这是一个黑客,但我确实喜欢你的想法 (2认同)

gic*_*dog 5

在 LINUX 中实现它

在提示符中添加一个标识符(例如在 .bashrc 的底部添加):

promptCount=0
PROMPT_COMMAND=promptCount=$((promptCount+1))
PS1="/\$promptCount\\ $PS1"
Run Code Online (Sandbox Code Playgroud)

现在使用终端的搜索功能,也许是 ++ Ctrl,作为您想要的提示行。ShiftF

使其更方便:

安装xdotool(命令行 X11 自动化工具)

创建一个函数,该函数将按下您在N通过搜索功能找到提示行时所按下的确切按键(添加到 .bashrc 的底部):

gp () { xdotool key ctrl+shift+F; xdotool type /$1\\ ; xdotool key KP_Enter;sleep 0,2; xdotool key Alt+F4; }
Run Code Online (Sandbox Code Playgroud)

(至少这些是我在 Manjaro Xfce 中执行此操作时按下的确切按键)

现在:

在此输入图像描述

gif 中未显示一个小框架,其中出现小搜索窗口,N写入标识符,Enter按下按键,然后关闭窗口。您可以尝试通过更改提供给 sleep 命令的参数值来加快速度。就我而言,它在 0,11 左右之前都可以正常工作。


l0b*_*0b0 3

如果您使用的是 GNOME 终端等终端,则可以向后搜索。例如,Ctrl++ Shift,f然后输入文字命令或正则表达式来匹配它(并确保相应地设置“匹配为正则表达式”)。

解决方法是将输出发送到寻呼机,例如less,您可以在其中导航和检查输出,然后返回到命令行,就好像没有打印任何内容一样。