控制台空间被文件内容占用

控制台空间被文件内容占用

请参阅下面的示例以了解我的问题;考虑我的控制台提示符看起来像这样

user@server $ ls
"I opened a file temp"
user@server $ vi temp

temp 将在同一窗口中打开,当我关闭 temp 时,我不会返回:

user@server $ ls
user@server $ vi temp
user@server $

相反,我回到了这样的事情

user@server $ ls
user@server $ vi temp
"temp file content"
"temp file content"
"temp file content"
user@server $

它正在占用我的可见屏幕空间,并且我最终可能会因为此文件内容而丢失一些重要的输出。

答案1

终端有一个称为“备用屏幕”的功能。它允许程序使用不同的虚拟“屏幕”并在退出时恢复前一个屏幕。

您需要一个支持此功能的终端模拟器。 Gnome-terminal、urxvt 和 xterm 都可以。我从未见过它默认被禁用,但如果它只是被禁用,您也许可以使用 Xresources 启用它。如果您有 xterm 或 urxvt,则在您的~/.Xresources~/.Xdefaults文件中添加以下内容:

对于 xterm:

XTerm*titeInhibit: false

对于 urxvt:

urxvt*secondaryScreen: true

某些 GUI 终端可能有一个选项面板,其中带有用于启用备用屏幕的复选框。

更多资源:

http://blogmal.42.org/tidbits/titeinhibit.story

http://shallowsky.com/linux/noaltscreen.html

答案2

尝试使用screen(或byobu,这是您可能更喜欢的扩展版本screen)。除了标准功能之外,它不需要特殊的终端支持。

你像这样启动它:

screen

或者

byobu

简单的!

然后它会打开一个新的外壳。进入后,您可以打开第二个外壳同时Ctrl-Ac,然后您可以使用Ctrl-A1和之间进行切换Ctrl-A2。您可以重复此操作以一次打开更多。

您还可以在另一个视图中打开 vim (或其他任何东西),如下所示(来自之内现有屏幕视图之一):

screen vim blah

作为额外的好处,您可以关闭终端(而不是退出 shell),注销,当您下次再次登录时(假设计算机尚未重新启动),您可以重新连接到旧会话,一切仍将如常你留下了它:

screen -r

缺点是你不能使用终端自己的滚动功能 - 你必须使用screen的滚动功能:点击Ctrl-AEsc,然后你可以上下翻页,并使用 回到正常模式Esc

答案3

使用完整的 vim 版本,而不是 vim-tiny 版本。 vim 和 vim-tiny 都可以从命令行方便地调用,vi因为它是原始编辑器的替代品。许多发行版都标配有 vim-tiny。

相关内容