Al03's blog

我是怎么使用tmux 的

当越来越多的工作是在终端内完成的时候,可以使用tab或split当前窗口实现多窗口之间的切换。即使这样切换起来还是不方便,而且无论是终端顶部的tab还是split后中间的那条线,都阻碍了屏幕的充分利用。

这时就需要terminal mutiplexer「终端复用器」来帮我管理窗口。

主流“终端复用”工具有tmux和screen等。

这里主要介绍tmux,它的detachattach,以及每个window占用极少的内存,尤其是attach,多少次手不小心⌘+w关闭了终端,只需

tmux attach

安装

brew install tmux

运行

tmux

tmux采用分段式快捷键,即要操作tmux,需要先触发一个快捷键,再输入操作按键。

默认的prefixControl+b,即先按Control+b然后在输入操作按键。

窗口关系结构

tmux的窗口结构如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tmux
├── session1
│   ├── window1
│   │   ├── pane1
│   │   └── pane2
│   └── window2
│   ├── pane1
│   └── pane2
└── session2
├── window1
│   ├── pane1
│   └── pane2
└── window2
├── pane1
└── pane2

通过上面的结构可以看出,tmux里的以session为单位,每个session内会有多个window,而每个window又可以被切分出做个pane

运行tmux后,tmux会初始化一个session,这个session里默认会又一个window,每个window下默认也会有一个pane。

基本的操作不会在此一一列举,请自行搜索,或阅读文档

配置

tmux和Vim一样可以灵活配置,只需编辑$HOME下的.tmux.conf即可。

同样也和Vim一样,为什么要一步一步去配置tmux,将别人已经配置好的文件拿来用不就好了吗?

Right!

这里

首先里面的配置是将prefix改为了C-a,因为Control+b和Vim里的回滚冲突。

#C-b is not acceptable -- Vim uses it
unbind C-b
set -g prefix C-a

应用配置后bind-key+hjkl分别代表代表上下左右

![我的tmux](/images/Screen Shot 2016-12-09 at 7.01.27 PM.png)