使用 tmux 创建你的梦想主控台
使用 tmux 可以做很多事情，尤其是在将 tmuxinator 添加到其中时。在我们的二十篇系列文章的第十五期中查看它们，以在 2020 年实现开源生产力的提高。
tmux
使用 tmux 可以做很多事情，尤其是在将 tmuxinator 添加到其中时。在我们的二十篇系列文章的第十五期中查看它们，以在 2020 年实现开源生产力的提高。

> 
> 使用 tmux 可以做很多事情，尤其是在将 tmuxinator 添加到其中时。在我们的二十篇系列文章的第十五期中查看它们，以在 2020 年实现开源生产力的提高。
> 
> 
> 


![](/data/attachment/album/202002/16/220832bd4l1ag4tlqxlpr4.jpg)


去年，我在 19 天里给你介绍了 19 个新（对你而言）的生产力工具。今年，我换了一种方式：使用你在使用或者还没使用的工具，构建一个使你可以在新一年更加高效的环境。


### 使用 tmux 和 tmuxinator 全部放到主控台上


到目前为止，在本系列文章中，我已经撰写了有关单个应用程序和工具的文章。从今天开始，我将把它们放在一起进行全面设置以简化操作。让我们从命令行开始。为什么使用命令行？简而言之，在命令行上工作可以使我能够从运行 SSH 的任何位置访问许多这些工具和功能。我可以 SSH 进入我的一台个人计算机，并在工作计算机上运行与我的个人计算机上所使用的相同设置。我要使用的主要工具是 [tmux](https://github.com/tmux/tmux)。


大多数人都只使用了 tmux 非常基础的功能，比如说在远程服务器上打开 tmux，然后启动进程，也许还会打开第二个会话以查看日志文件或调试信息，然后断开连接并在稍后返回。但是其实你可以使用 tmux 做很多工作。


![tmux](/data/attachment/album/202002/16/220903olz5v252h7l2w552.png "tumux")


首先，如果你有一个已有的 tmux 配置文件，请对其进行备份。tmux 的配置文件是 `~/.tmux.conf`。将其移动到另一个目录，例如 `~/tmp`。现在，用 Git 克隆 [Oh My Tmux](https://github.com/gpakosz/.tmux) 项目。从该克隆目录中将 `.tmux.conf` 符号链接到你的家目录，并复制该克隆目录中的 `.tmux.conf.local` 文件到家目录中以进行调整：



```
cd ~
mkdir ~/tmp
mv ~/.tmux.conf ~/tmp/
git clone https://github.com/gpakosz/.tmux.git
ln -s ~/.tmux/.tmux.conf ./
cp ~/.tmux/.tmux.conf.local ./
```

`.tmux.conf.local` 文件包含了本地设置和覆盖的设置。例如，我稍微更改了默认颜色，然后启用了 [Powerline](https://github.com/powerline/powerline) 分隔线。下面的代码段仅显示了我更改过的内容：



```
tmux_conf_theme_24b_colour=true
tmux_conf_theme_focused_pane_bg='default'
tmux_conf_theme_pane_border_style=fat
tmux_conf_theme_left_separator_main='\uE0B0'
tmux_conf_theme_left_separator_sub='\uE0B1'
tmux_conf_theme_right_separator_main='\uE0B2'
tmux_conf_theme_right_separator_sub='\uE0B3'
#tmux_conf_battery_bar_symbol_full='◼'
#tmux_conf_battery_bar_symbol_empty='◻'
tmux_conf_battery_bar_symbol_full='♥'
tmux_conf_battery_bar_symbol_empty='·'
tmux_conf_copy_to_os_clipboard=true
set -g mouse on
```

请注意，你不需要安装 Powerline，你只需要支持 Powerline 符号的字体即可。我在与控制台相关的所有内容中几乎都使用 [Hack Nerd Font](https://www.nerdfonts.com/)，因为它易于阅读并且具有许多有用的额外符号。你还会注意到，我打开了操作系统剪贴板支持和鼠标支持。


现在，当 tmux 启动时，底部的状态栏会以吸引人的颜色提供更多信息。`Ctrl` + `b` 仍然是输入命令的 “引导” 键，但其他一些进行了更改。现在水平拆分（顶部/底部）窗格为 `Ctrl` + `b` + `-`，垂直拆分为 `Ctrl` + `b` + `_`。启用鼠标模式后，你可以单击以在窗格之间切换，并拖动分隔线以调整其大小。打开新窗口仍然是 `Ctrl` + `b` + `n`，你现在可以单击底部栏上的窗口名称在它们之间进行切换。同样，`Ctrl` + `b` + `e` 将打开 `.tmux.conf.local` 文件以进行编辑。退出编辑器时，tmux 将重新加载配置，而不会重新加载其他任何内容。这很有用。


到目前为止，我仅对功能和视觉显示进行了一些简单的更改，并增加了鼠标支持。现在，我将它设置为以一种有意义的方式启动我想要的应用程序，而不必每次都重新定位和调整它们的大小。为此，我将使用 [tmuxinator](https://github.com/tmuxinator/tmuxinator)。tmuxinator 是 tmux 的启动器，它允许你指定和管理布局以及使用 YAML 文件自动启动应用程序。要使用它，请启动 tmux 并创建要在其中运行程序的窗格。然后，使用 `Ctrl` + `b` + `n` 打开一个新窗口，并执行 `tmux list-windows`。你将获得有关布局的详细信息。


![tmux layout information](/data/attachment/album/202002/16/220903klwzjm1q041qy6vj.png "tmux layout information")


请注意上面代码中的第一行，我在其中设置了四个窗格，每个窗格中都有一个应用程序。保存运行时的输出以供以后使用。现在，运行 `tmuxinator new 20days` 以创建名为 “20days” 的布局。这将显示一个带有默认布局文件的文本编辑器。它包含很多有用的内容，我建议你阅读所有选项。首先输入上方的布局信息以及所需的应用程序：



```
# /Users/ksonney/.config/tmuxinator/20days.yml
name: 20days
root: ~/
windows:
   - mail:
      layout: d9da,208x60,0,0[208x26,0,0{104x26,0,0,0,103x26,105,0,5},208x33,0,27{104x33,0,27,1,103x33,105,27,4}]] @0
      panes:
        - alot
        - abook
        - ikhal
        - todo.sh ls +20days
```

注意空格缩进！与 Python 代码一样，空格和缩进关系到文件的解释方式。保存该文件，然后运行 `tmuxinator 20days`。你应该会得到四个窗格，分别是 [alot](https://opensource.com/article/20/1/organize-email-notmuch) 邮件程序、[abook](https://opensource.com/article/20/1/sync-contacts-locally)、ikhal（交互式 [khal](https://opensource.com/article/20/1/open-source-calendar) 的快捷方式）以及 [todo.txt](https://opensource.com/article/20/1/open-source-to-do-list) 中带有 “+20days” 标签的任何内容。


![sample layout launched by tmuxinator](/data/attachment/album/202002/16/220917xv1hp84hgvvktg58.png "sample layout launched by tmuxinator")


你还会注意到，底部栏上的窗口标记为 “Mail”。你可以单击该名称（以及其他命名的窗口）以跳到该视图。漂亮吧？我在同一个文件中还设置了名为 “Social” 的第二个窗口，包括 [Tuir](https://opensource.com/article/20/1/open-source-reddit-client)、[Newsboat](https://opensource.com/article/20/1/open-source-rss-feed-reader)、连接到 [BitlBee](https://opensource.com/article/20/1/open-source-chat-tool) 的 IRC 客户端和 [Rainbow Stream](https://opensource.com/article/20/1/tweet-terminal-rainbow-stream)。


tmux 是我跟踪所有事情的生产力动力之源，有了 tmuxinator，我不必在不断调整大小、放置和启动我的应用程序上费心。




---


via: <https://opensource.com/article/20/1/tmux-console>


作者：[Kevin Sonney](https://opensource.com/users/ksonney) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

