tmux——终端多路复用器
那么 tmux 的喧嚣到底是怎么回事呢?
安装和配置
但是我如何使用它呢?
结论
上次,我写了关于为什么我认为每个人都应该尝试使用像 vim 这样的简单文本编辑器至少一段时间。
经过这样的经历,有些人可能会放弃,而其他人可能想全职使用 vim。
对于后者——恭喜!
但不可避免的是,这种方法会出现问题,特别是当你在做一个大项目时——与 IDE 相比,使用基本的 vim 来开发大项目是相当低效的。
我曾经在我的业余项目中使用过 vim,它做得很好,但是当我尝试在一个具有大型代码库和几个不同构建变体的项目上使用它时,事情开始变得混乱,我更喜欢使用 IDE。
你们中的一些人可能不同意我的观点,我见过有人更喜欢坚持使用最基本的 vim。
但根据我的经验,除了其出色的用户界面为您提供的文本编辑功能外,维护大型项目所需的所有辅助工具都是无价的,并且无法从基本的 vim 中轻松获得。
因此,为了解决这个问题,我开始探索许多不同的工具和插件,以使我的 vim 能够挑战我的 IDE 提供的生产力。
在这个新系列的文章中,我将分享我最喜欢的工具,这些工具可以帮助我通过使用 vim 保持每天的高效。
在第一个中,主题是我一直以来最喜欢的 vim 插件 - tmux。
本文是 “提升你的 VIM”系列文章的一部分,我在其中分享了我最喜欢的 vim 插件和工具,它们可以极大地优化你的工作效率并让你成为一个更好的键盘忍者。
那么 tmux 的喧嚣到底是怎么回事呢?
tmux 是一个终端应用程序,允许您在单个终端窗口中模拟多个终端。
真的就这些了。而且已经足够了。
为什么这是必要的?
那么,您是否曾经在 vim 中进行过一些编辑并执行一些外部终端命令?
例如,做一些更改并使用 git 将它们添加到您的 repo 并提交?
或者在执行此操作时,您想检查不同目录中的内容,但仍想保留当前会话?
嗯,在正常情况下,你会打开另一个终端窗口,完成你的工作然后返回到前一个终端窗口。
但如果您必须打开太多的会话,不幸的是,事情可能会变得棘手。
问题在于,打开一个新的终端窗口意味着打开一个新的 GUI 应用程序,您可以使用鼠标轻松进入该应用程序,但使用键盘操作导航到该应用程序则比较困难。
除此之外,如果您想同时观察多个终端窗口的进度,则必须使用鼠标调整它们在屏幕上的位置。
我不知道您是怎么想的,但每当我不得不将手从键盘上移开去拿鼠标时,感觉就很糟糕。
更重要的是,你失去了宝贵的键盘狂敲惯性。所以总的来说,你的工作效率会下降。
为了生成所有这些终端并以这种方式对它们进行排序,我花费了大量的时间点击和移动鼠标。
如果您必须经常这样做,很快就会感到非常沮丧,特别是当您全神贯注于手头的问题时。
但另一方面,通过使用 tmux,您可以在单个终端窗口中通过几次键盘敲击(而不是使用鼠标)完成所有工作。
为了调整上述布局,没有使用任何鼠标点击。
安装和配置
tmux 是一个独立于 vim 的软件。因此,你可以像安装其他软件一样安装它。
在 Debian 发行版上:
sudo apt-get install tmux
在 Red Hat 系统上:
yum install tmux
就这样!你的系统上已经有 tmux 了。你只需输入 即可运行它tmux
。
然而,tmux 的默认配置非常粗糙,第一次使用时可能会有点恼火。
例如,我记得从 tmux 终端复制文本时存在一些问题,某些颜色存在问题,并且在 vim 中使用 tmux 的某些快捷方式时存在不兼容。
为了解决这个问题,你需要进行大量的浏览,才能让 tmux 真正可用且用户友好。如果你喜欢这样做,那就随我便吧。
但是如果您只是想获得一个正常的、可以工作的 tmux 配置并开始使用它,您可以.tmux.conf
从我的 github repo复制我的文件。
只需复制我共享的文件内容,然后将其粘贴到.tmux.conf
位于主文件夹根目录的文件中即可。也就是~
目录。
就是这样!现在你有了一个可以正常工作的 tmux,它完全兼容 vim,而且使用起来(几乎)不会很麻烦。
tmux 太棒了!我不能让它在打开终端窗口时自动启动吗?
(闪光、嗡嗡声、吱吱声。Supervim 家伙降落在你面前)
是的,你可以!
.bashrc
您所要做的就是将这些行附加到用户主目录中的文件末尾(或您使用的任何 bash 配置文件)。
但要小心!
如果您添加这些行并破坏了 tmux 的配置,那么您将根本无法启动终端。
因此,如果您要调整.tmux.conf
文件,请确保事先注释掉这些行。
但是我如何使用它呢?
终于,我们翘首以盼的时刻到了。你拿到了新玩具,也组装好了。现在,可以玩了!
因此,您可以像使用普通终端一样使用 tmux。应该不会观察到其他异常行为。
只有一个例外(到目前为止我发现的)。
每当您想使用鼠标从终端复制某些内容时,您需要按住 shift 并拖动鼠标。
这就是使用 tmux 的副作用。当然,如果你跳过配置部分,可能会有很多副作用。但如果你把配置部分做好了,就没什么可担心的了。
好的,现在到了有趣的部分,如何利用该工具在终端内生成无数个终端并控制它们。
特殊的 tmux 控制器状态
使用 tmux 时一切正常,直到你点击Ctrl-B
。这是一个特殊的按键绑定,用于激活tmux 控制器状态。 我不知道它实际上叫什么,但我更喜欢这么叫。我最好尽快申请专利,呵呵。
不管您喜欢如何称呼它,它都是您可以使用不同键的状态,并且它们不会像在正常情况下那样运行,而是执行某些特定操作来控制多路复用终端。
如果您在此状态下一段时间不执行任何操作或者单击回车键,您将返回到正常终端状态。
在此状态下,您可以使用许多按键来执行各种操作。我只会告诉您最重要的几个按键,它们也是我通常使用的唯一按键。有关其他一些更高级的用法,请参阅 tmux 手册页。
生成一个新的终端
<Ctrl-B>"
- 垂直生成一个新终端。
<Ctrl-B>%
- 水平生成一个新的终端
这些操作也可以在内部 tmux 窗口上递归使用,以创建漂亮的终端网格。
只需注意这两个操作。使用它们之后,您将返回到正常的终端操作。
这意味着你不能像下面这样链接终端生成:
<Ctrl-B>""""
相反,您必须<Ctrl-B>"
单独调用几次。
航站楼网格导航
<Ctrl-B>Left
- 转到左侧终端屏幕。
<Ctrl-B>Right
- 转到正确的终端屏幕。
<Ctrl-B>Up
- 转到上层终端屏幕。
<Ctrl-B>Down
- 转到下方终端屏幕。
与前面的命令不同,当您调用其中任何一个命令时,您将处于控制器状态。
这意味着您可以组合这些按键以在屏幕之间快速导航。
<Ctrl-B>Left Down Right
最后,当您到达所需的屏幕时,单击 Enter 返回正常模式。
调整单元格大小
如果您觉得终端单元格比您想要的要小,您可以使用以下键绑定来调整它的宽度和高度:
<Ctrl-B><Ctrl>Left
- 增加左侧宽度
<Ctrl-B><Ctrl>Right
- 增加右侧的宽度
<Ctrl-B><Ctrl>Up
- 增加上方单元格的高度
<Ctrl-B><Ctrl>Down
- 增加下方单元格的高度
如果你自己尝试去掌握它,事情就会变得更容易。
再次,与之前的操作类似,这些操作会让您处于控制器状态。
结论
这就是你开始使用 tmux 所需了解的全部内容。这些知识足以帮助你打下基础,高效地使用它。
剩下的就是练习和适应新玩具。
希望你喜欢它!
但这远远不足以提升你的 vim 并使其在工具和增强功能方面与现代 IDE 达到同一水平。
如何导航你的项目结构?如何查找函数的用法?如何自动完成?
我们才刚刚开始!
因此,请继续关注更多出色的工具,它们可以让您成为高效的 vim 键盘忍者。
鏂囩珷鏉ユ簮锛�https://dev.to/pmihaylov/tmux---a-terminal-多路复用器-2pm6