我在远程服务器上运行了一些命令(使用 WSL ubuntu 20 通过 ssh 连接到它),运行后我打开 nano 编辑器,通常我可以用鼠标向上滚动,这样我就可以在不关闭 nano 的情况下看到我的终端,我可以复制以前运行的命令的输出。在我的新笔记本电脑上设置 WSL 后,我尝试在同一个远程服务器上执行此操作,但向上滚动不会显示我的最新命令,它只显示我的命令,但没有显示大约 10 条最新命令。我必须复制进入 nano 之前运行的最后一个命令的部分输出。有什么想法吗?谢谢。
答案1
简短的摘要:
- 我可以复制你的期望行为在 Ubuntu/WSL 中使用 Windows 终端
- 我可以重现你的行为不喜欢在 Ubuntu/WSL 中使用旧版 Windows 控制台主机
更多详情:
该nano
编辑器和大多数其他基于终端的编辑器通常在所谓的备用屏幕缓冲区。 这通常(有些人会说“正确”)在这种模式下终端的行为,正如@pa4080提到的那样当我输入这篇文章时出现的另一个答案是不是允许在备用缓冲区上方滚动。在此模式下,某些终端将发送上/下键以响应上/下滚动。
奇怪的是,这是一个问题(Github 问题链接) 在里面新的Windows 终端,您可能已在之前的计算机上安装了该终端。此行为确实不是发生在(更)旧的 Windows 控制台主机中,默认Windows 10 和(当前)Windows 11 上的终端。
在我看来,你现在可能正在使用较旧的控制台,它的行为正确地,但不是你想要的那样。
我的建议是:
- 安装并切换到 Windows 终端
- 但不要依赖这种行为,因为它很可能会在某个时候被修复。@pa4080 提到了一种使用Ctrl+Z将前台应用程序发送到后台的可能性,但我也会向你指出 Tmux 作为替代方案,它允许你在多种的一个 Windows 终端选项卡内的终端窗口。
你也有可能是使用 Windows 终端,并且该行为已在新版本中得到修复,而没有将问题标记为已关闭(并且我可能正在运行没有修复的旧终端)。
答案2
根据我的经验,解释的行为 -向上滚动nano
查看终端- 仅在 WSL 中观察到。在我看来,它看起来像是一个错误而不是一个功能,但也许我错了。笔记:为了实现它 - 终端中的历史记录应该足够长,以便无需滚动即可nano
。
执行所需操作的正确方法是在打开(或其他应用程序)时按Ctrl+ 。这会将其推到后台,您将能够在终端中操作(列出目录或历史记录、复制文本等)。完成后,只需键入命令即可再次将其带到前台。Znano
fg
nano