Tmux使用指南和配置

会话、窗口与窗格的概念

#linux
tmux 常用命令与快捷键 - 简书
Tmux 中的主要概念分为三个：

Session - Session 是 Tmux 中最主要的概念了，默认开启 Tmux 的时候，就会自动新建一个会话，在这个会话中，也会给你开启一个默认的 Window（也即窗口）。Tmux 中可以拥有多个会话，多个会话之间可以来回无缝切换。

Window - 相比 session，Windows 是稍微小一点的单位。一个 session 中，可以开启多个 window。这些 window 同属于一个 Session，并由其管理。

Panel - Panel 是比 Window 更小的界面元素。前面我们也提到了 Tmux 中可以对 window 进行任意分割，由 window 分割出来的单位就叫做 panel 了。在同一个 window 中，用户可以控制光标在分割出的 panel 中随意移动，用以选定当前作为激活状态的 panel。

如果看了这些概念还不太明白，也许下面这个图可以清晰的表明它们之间的关系：

他们的从属关系为：Session -> Window -> Panel

安装与配置

Tmux 的安装也非常方便，通常 Ubuntu 下安装，使用:

Copy
sudo apt-get install tmux

在 mac OS 中，推荐使用 brew 来安装：

Copy
brew install tmux

Tmux 简单配置

Tmux 在安装完成之后，可以立即启动，不过这还只算一个 “裸奔” 的 Tmux，因为很多配置项都是默认值，需要我们根据自己的喜好进行一些设置。从零开始创建一个 Tmux 是比较费神的，建议去网上寻找其他大神的配置文件来修改，这样比较快捷一些。这里提供一个配置，可以作为模板，直接下载后按照自己的喜好来更改。

需要注意的是，tmux 的配置文件本身是一个隐藏文件，也就是以 . 号开头的文件，叫做 .tmux.conf 。我们需要把这个文件放在当前用户的默认主目录下，也即 ~/.tmux.conf ，tmux 启动后，会自动读取和加载里面的配置项。

配置文件就算这么搞定了，如果你是第一次接触 Tmux，建议不用太纠结如何弄清楚配置文件里面的每一项是什么意思，在后续的使用中，你可能会不断去修改和调整，自然而然也就熟悉了。接下来，我们要见识一下 Tmux 强大的各种快捷键功能。

这里提供一个我经常使用的 Tmux 配置文件，可以作为模板，直接下载后按照自己的喜好来更改。

Tmux 使用效果

常用快捷键

初次使用 Tmux 需要明白的是，Tmux 的各种快捷键功能，是需要一个<prefix> 组合键作为前缀的。也就是说，需要先按下 <prefix> 组合键，才能激活快捷键功能，然后再按对应各种功能的快捷键，才会生效。之所以这样设计，估计也是为了把快捷键的输入跟用户正常输入区分开来。

初次使用 Tmux，我们要知道的是，Tmux 为我们默认预备的 <prefix> 组合键，是 C-b (即 Ctrl+b)。当然，根据我们自己的习惯，如果觉得 C-b 按起来不方便，可以通过修改配置文件的方式，自定义自己喜欢的 <prefix> 组合键。比如我就觉得 C-b距离有点远，于是，我的 <prefix> 是这么定义的：

Copy
set -g prefix C-j

这里简单列举一下 Tmux 的部分快捷键操作，有些快捷键估计跟 Tmux 默认提供的不太一样，因为我根据自己的喜好进行了一些调整。

窗口 (Window) 操作

Copy
<prefix> c 创建新窗口
<prefix> w 列出所有窗口
<prefix> n 后一个窗口
<prefix> p 前一个窗口
<prefix> f 查找窗口
<prefix> , 重命名当前窗口
<prefix> & 关闭当前窗口

窗格 (Panel) 操作

Copy
<prefix> | 垂直分割
<prefix> - 水平分割
<prefix> o 交换窗格
<prefix> x 关闭窗格
<prefix> <space> 切换布局
<prefix> q 显示每个窗格是第几个，当数字出现的时候按数字几就选中第几个窗格
<prefix> { 与上一个窗格交换位置
<prefix> } 与下一个窗格交换位置
<prefix> u 切换窗格最大化
<prefix> n 切换窗格最小化
<prefix> 0-9 切换到指定编号的窗口

窗格 (Panel) 选择

Copy
<prefix> h 选择左边的窗格
<prefix> j 选择下面的窗格
<prefix> k 选择上面的窗格
<prefix> l 选择右边的窗格

窗格 (Panel) 尺寸调整

Copy
<prefix> H 当前窗格向左扩大3格
<prefix> J 当前窗格向下扩大3格
<prefix> K 当前窗格向上扩大3格
<prefix> L 当前窗格向右扩大3格

会话 (Session) 相关

Copy
<prefix> :new<回车> 启动新会话
<prefix> s 列出所有会话
<prefix> $ 重命名当前会话

这里只是列出了部分 Tmux 常用快捷键，初学 Tmux，千万别被这么多的快捷键给吓住，随着使用 Tmux 时间的不断增加，这些快捷键最终会变为肌肉的条件反射，所谓的 “无剑胜有剑”，嘿嘿。

总结

Tmux 真是终端下的利器，在 macOS 下，配合 iTerm2 和 Vim，能轻松的打造出高效的开发环境。在服务端运行 Tmux，也能为你日常运维工作带来许多便利。所以，将 Tmux 大法谨记心中，他日必能为君带来极大的便利和效率。