Tmux Introduction I



什么是Tmux?

Tmux可以理解为是一个terminal控制器, 是对我们的terminal的扩展, 同时我们可以利用它来建立自己的一套workflow.

先上一张图,感受一下.

<img src="../../images/tmux.png" class="img-thumbnail" width="90%" >

Terminal的上半部分是打开了vim准备编辑, 下半部分竖直拆分成2个部分.

为什么要用Tmux?

原因一, 在一个Terminal上实现了多窗口控制,便于写代码同时调试;

原因二, Tmux为我们在后台保存了一个进程, 记录了我们当前的窗口状态, 即使关闭这个Terminal, 只要下次再打开Tmux,立刻恢复退出前的状态.

原因三, 我们可以给Tmux提供一组配置文件, 这样可以在每次建立窗口前, 预先设置好环境, 提高了工作效率.

怎么用Tmux?

首先,先建立一个Tmux进程, 这里有专门的术语session.

tmux new -s abc

我们通过上面的命令得到了一个Tmux session,名字叫abc.

<img src="../../images/newsession.png" class="img-thumbnail" width="90%" >

这个时候Terminal底部的绿色状态栏提示我们,目前是在一个Tmux的session中.现在我们就可以做一些分割窗口的操作了.Tmux的所有命令都有同样的一个前缀,就是"ctrl-b"1. 我们按"ctrl-b", 然后按"%", 为了便于说明我用"prefix %"来表示. Terminal就被竖直分成了两个部分.这每一部分称为pane.在pane之间来回移动光标的命令是"prefix o"2.

<img src="../../images/split.png" class="img-thumbnail" width="90%" >

我们先断开session连接, 命令是"prefix d".

然后在terminal中输入命令,来查看后台有哪些Tmux的session.

tmux ls

结果显示如下, 有一个Tmux后台进程, session名为abc.

<img src="../../images/tmuxls.png" class="img-thumbnail" width="90%" >

我们再通过下面的命令,重新连接到session abc去.

tmux attach -t abc

window概念

连接或者新打开一个session, 我们就得到了一个window. window可以被拆成若干pane. 新建一个window的快捷键是"prefix c", 关闭一个window的快捷键是"prefix &".

buffer概念

当我们想copy terminal显示的内容时, 我们需要进入buffer模式, 快捷键是"prefix [".

在buffer中移动以及其他操作我们留在下一篇介绍里说.

在非buffer模式, 如果想paste内容, 快捷键是"prefix ]".

<img src="../../images/tmuxbuf.png" class="img-thumbnail" width="90%" >

注意右上脚的行号显示, 表示我们现在是buffer模式. (按"q"退出buffer模式)

Footnotes:

1

"-"表示两个键同时按.

2

" "表示按键依次按.