Hack 和 / - 进行分屏

作者:Kyle Rankin

即使现在我们拥有高分辨率的平板显示器,屏幕空间仍然可能非常宝贵。当然,如果您的大部分时间都在终端中度过,情况更是如此。当您想要同时比较两个文件或同时监控两个不同的会话时,您可以小心地定位终端窗口或依赖标签页。

标签页可能很好,但是当我使用终端时,我喜欢尽可能多地使用键盘。而且,我不知道其他人怎么样,但对我来说,我在终端中运行的主要程序有四个:mutt、vim、screen 和 irssi。幸运的是,所有这些程序都支持某种形式的分屏——水平或垂直分割终端的能力。虽然这些功能不一定是新的,但如果您不是每天都使用它们,可能很难记住如何分割屏幕、在各个部分之间导航,然后回到单屏幕。在本专栏中,我将讨论我最喜欢的四个终端应用程序中的分屏功能,并提供一个简单的指南,以帮助我们所有人记住它们。

Mutt 分页器索引

我想如果您想从技术角度来说,这与其他工具中的分屏并不完全相同,但是当您在 mutt 分页器(允许您查看电子邮件正文的部分)中时,默认情况下,mutt 会用电子邮件填充整个终端。但是,如果您愿意,您可以告诉 mutt 在顶部占用指定行数,并使用它们来显示您的索引。这样,您可以浏览电子邮件消息的内容,但仍然能够关注索引中的其他标头。要使用十行来显示此功能,只需添加以下内容

set pager_index_lines=10

到您的 ~/.muttrc。

Hack and / - Do the Splits

图 1. 启用 pager_index_lines 的 Mutt

Vim 分屏

Vim 是我最喜欢的文本编辑器(我基本上所有的写作都使用它),它的分屏功能对于系统管理工作尤其有用。我已经记不清有多少次我在一个配置文件或脚本中做了更改,想要添加到第二个文件中。要为水平分屏启用分屏模式,请输入

:split

对于垂直分屏,请输入

:vsplit

默认情况下,vim 在两个窗格中显示相同的文件。按 Ctrl-W,然后使用常规的 HJKL 键(或者如果您不像我一样是主行狂热者,则使用箭头键)在窗格之间导航。因此,如果我进行了水平分割并想在底部窗格中打开一个新文件,我将按 Ctrl-W J 将光标移动到该窗格,然后我会输入:open 文件名以打开新文件。当您完成特定窗格的操作后,请确保光标在该窗格中,然后以正常方式保存并关闭文件。

Vim 也不仅限于两个窗格——只需输入:split:vsplit命令再次添加第三个水平或垂直窗格,分别。您甚至可以水平分割窗口,然后输入:vsplit将该窗格进一步分割成两个垂直窗格。

Hack and / - Do the Splits

图 2. 带有垂直分屏的 Vim

Screen 分屏

Screen 是另一个不可或缺的命令行工具。如果您以前没有使用过 screen,它本质上允许您打开多个编号的 shell,您可以使用 Ctrl-A <数字> 切换到它们。然后,您可以从您的 screen 会话中分离并稍后连接到它,同时,您在其中打开的所有 shell 都保持其状态。我通常使用 screen 的一种方式是用于 irssi,一个基于命令行的 IRC 客户端。我在始终运行的服务器上的 screen 中打开 irssi。这样,无论我在哪里,我都可以连接到远程服务器并恢复我的 irssi 会话,该会话始终保持连接。

除了标准的 screen 功能外,screen 还支持水平分屏。如果您想在一个窗口中监控 IRC 并在第二个窗口中执行其他命令,这将非常有用。此外,如果您使用文本编辑器或其他本身不支持分屏的工具,您可以使用 screen 的分屏功能作为补充。

要在 screen 中分割窗格,请按 Ctrl-A Shift-S。然后,您可以按 Ctrl-A Tab 在两个窗格之间移动光标。您会注意到底部窗格一开始是空的。将光标移动到它之后,您可以按 Ctrl-A <数字> 切换到当前打开的窗口,或者您可以按 Ctrl-A C 在该窗格中创建一个新窗口。Screen 也支持多个窗格。只需再次按 Ctrl-A Shift-S 即可将会话分割成三个大小相等的窗格。当您准备好关闭窗格时,按 Ctrl-A Tab 直到光标位于该窗格中,然后按 Ctrl-A Shift-X 关闭该窗格。

Irssi 分屏

Irssi 绝对是我最喜欢的 IRC 客户端,我可能花费在它上面的时间与在任何其他命令行程序上的时间一样多。它也支持一个有趣的分屏功能,需要一些时间来适应。基本上,您在 irssi 中加入的每个频道最终都会出现在其自己的编号窗口中。在我的设置中,我总是将特定频道设置为在特定窗口中打开,因此例如,当我按 Alt-7 时,我总是会转到 #linuxjournal。有时您在多个频道中有很多活动,并且想要监控所有这些频道。因此,例如,如果我想同时查看 #linuxjournal(在窗口 7 中)和 #nblug(在窗口 4 中),并且我已经位于 #nblug 中,我可以输入

/window show 7

/window split 7

Hack and / - Do the Splits

现在 irssi 屏幕一分为二,#linuxjournal 在顶部,#nblug 在底部。如果我想在 #linuxjournal 中聊天,我按 Alt-7 以确保它被选中(irssi 上的主题标头会更新以显示当前选定的窗口)。然后,如果我想在 #nblug 中聊天,我按 Alt-4。

图 3. 带有两个窗口的 Irssi

/window stick 7 off

一旦您开始切换到两个以上的窗口,Irssi 分割窗口就会变得有趣。回到示例,如果我现在按 Alt-5(我的 #knoppix 窗口),则底部窗口将更改为该频道。默认情况下,irssi 使分屏中的顶部窗口“粘性”,以便无论您切换到沿底部的其他窗口,它都会出现。如果我想关闭该窗口的粘性模式,我将输入

/window stick 7

/window unstick

/window hide

现在,当我使用 Alt 键在窗口之间切换时,顶部或底部窗口会切换,具体取决于哪个窗口最后获得焦点。如果我想再次将 #linuxjournal 粘在顶部,我输入/window stick.

一旦您完成分屏(或者如果您感到困惑并想关闭它),请输入

Hack and / - Do the Splits

/window hide

以隐藏当前选定的窗口。如果该窗口是粘性的,则在您使用以下命令关闭粘性之前,它将无法隐藏

/window stick off