答案1
使用tmux
。
Tmux 是 GNU screen 的替代品,所以这个答案几乎就像“使用screen
”。但是 tmux 窗口在默认状态行中几乎像选项卡一样出现。启用鼠标支持后,您只需单击即可切换到另一个窗口;或者当光标悬停在状态行上时使用鼠标滚轮。
屏幕截图来自 PuTTY,因为我目前使用的是 Windows。在 Linux 中,我的体验甚至更好:
- 我运行提供标签的终端模拟器。
- 我将第一个标签保留在本地。
- 在附加选项卡中,我
ssh
将其添加到各种服务器。这样,每台机器都有一个选项卡。 - 在我运行的每台机器上
tmux
,Tmux 窗口就像是相应终端仿真器选项卡中的附加选项卡层。 - 此外,tmux 还提供窗格(上面的屏幕截图中有两个窗格,均以交互方式运行
bash
)。如果您习惯每个选项卡只有一个 shell,并且想要保持这种方式,那么就不要将 tmux 窗口拆分为多个窗格。对我来说,窗格比 tmux 中的窗口更有用。
作为副作用,我能够断开与 SSH 服务器的连接而不会中断任何操作;并且能够从同一台或另一台计算机连接,继续我的工作,就像什么都没发生一样(ssh
再次,然后)。我在你的问题的上下文中称之为“副作用”,但此功能通常是人们使用/ 的tmux a
主要原因。tmux
screen
tmux
实用提示,因此您可以在远程机器上安装并运行后立即测试我的解决方案:
将其放置在您的位置
~/.tmux.conf
以启用鼠标支持:set -g mouse on
tmux
要明确的是:该文件应该存在于即将运行的远程端。本地tmux.conf
仅与本地调用的有关tmux
。tmux
在客户端-服务器架构中运行(注意:客户端通常与它们通信的服务器在同一台机器上运行,这与网络无关)。服务器启动时会读取上述文件。如果您需要为已经运行的服务器启用鼠标支持,请从 shell 调用此命令:tmux set -g mouse on
要在 tmux 中创建新窗口,请按以下序列:prefixc.默认情况下
prefix为Ctrl+ b,因此整个序列是Ctrl+ b(释放两者)c。
要销毁窗口,请退出其所有窗格。如果窗口中只有一个 shell,则只需退出该 shell;与实际选项卡非常相似。
(有一个选项可以使窗格在相应进程退出后继续存在,因此窗口也继续存在;但这不是默认行为。)
要不使用鼠标进入下一个窗口,请按prefixn。
交互式选择:prefixs→↓↓↑...Enter还有其他有用的按键。
也许您更喜欢顶部的标签(它们的栏)。如果是这样,您可能也希望 tmux 在顶部显示状态栏。将其放置在
~/.tmux.conf
:set -g status-position top
您可以自定义状态行,使其看起来更像带有标签的栏。示例:
# persistent option in tmux.conf set-window-option -g window-status-current-format '\#I:#W#F/'
# or ad-hoc in a shell tmux set-window-option -g window-status-current-format '\#I:#W#F/'