Sté*_*las 11
您要问的是无限宽度的终端,其中正在显示其中的一部分。这不是终端传统上的工作方式,也不是应用程序期望它们工作的方式。
例如,如果终端具有无限宽度,那么当视觉应用程序想要在屏幕中间显示某些内容时,它们应该如何工作?
不过,您可以做的事情是使用 GNU screen
(您应该能够从多个不同大小的终端附加屏幕会话,以便屏幕知道如何显示较大终端的小窗口)并将screen
窗口宽度设置为某物非常大,然后欺骗视觉应用程序认为屏幕宽度是原始宽度。
喜欢(内screen
)
c=$COLUMNS # assuming your shell has that variable
screen -X width -w 1000
stty cols "$c"
Run Code Online (Sandbox Code Playgroud)
一些可视化应用程序可以正常工作,有些则不太好(用于在进行相对定位或依赖终端包装时进行安装)。vim
似乎工作正常。
然后滚动和复制粘贴数据,唯一的选择是使用screen
的复制模式。( <prefix>]
) 并围绕光标移动(请参阅info -f screen -n Movement
有关在复制模式下移动的信息)。
tmux
可能有类似的能力。
这个terminator
终端模拟器(基于 java),不是terminator
ubuntu 自带的,也有无限的终端宽度:
screen
上面的基于解决方案更好,因为它的 terminfo 条目声称它不进行换行,因此应用程序知道这一点,并且行首的 BS 不会移动到前一行的末尾。虽然 Emacs 主要是一个编辑器和 IDE¹,但它恰好非常适合您的问题。您可以在 Emacs 窗口中运行程序,Emacs 将其显示在无限宽和高的哑终端中。如果光标在缓冲区的末尾,窗口将随着程序产生输出而滚动;如果您四处移动光标,随着输出的增长,窗口将保持不动。
键入M-x shell RET
(即Alt+ x shell
Return) 以在 Emacs 缓冲区中启动 shell。键入C-u M-x shell RET
或M-1 M-x shell RET
以启动另一个 shell。您可以在每个 shell 中运行一个程序,并根据需要在多个窗口中排列缓冲区。
¹有时会说它是比编辑器更好的操作系统,但只有不使用它的人才会这样说——那只是个笑话。
归档时间: |
|
查看次数: |
18812 次 |
最近记录: |