##why tmux 是一个优秀的终端复用软件,类似 GNU Screen

通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台

并且支持session

##相关概念

有如下几个概念。

  • session. session是一个特定的终端组合。输入tmux就可以打开一个新的session。
  • window。window 为session中的终端。
  • pane 。pane为一个window分隔出来的各个间隔,

##常用命令

记得加前缀 ctrl+b

###session操作 * tmux ls 列出所有session。 * s 选择session * ctrl-b d, 退出当前session。输入tmux attach [-t sessionname]重新进入该session。例如tmux attach -t 1即可切换到名字为1的session。 * $ 重命名当前session * 挂起当前session

###window操作 ctrl+b是前提操作

  • c 创建一个新的window
  • , 重命名当前window (切换后名字会消失 why?zsh造成的?)
  • & 关闭当前window
  • n 移动到下一个窗口
  • p 移动到前一个窗口
  • l 切换到上一个窗口
  • w 列出所有窗口编号,并进行选择切换
  • 编号 移动到指定编号的窗口。
  • . 修改窗口编号,相当于排序。
  • f 搜索所有的窗口。非常方便的功能。如图

###pane操作 * " 横向分割 * % 纵向分割 * 方向键 在pane直接移动 * o 到下一个pane * Ctrl+方向键 以1个单元格为单位移动边缘以调整当前面板大小 * Alt+方向键 以5个单元格为单位移动边缘以调整当前面板大小 * { / }左右pane交换 * 空格 横竖切换 * q 显示pane的编号 * x 关闭当前pane

pane 聚焦当前窗口

  • 开多个pane,一个页面多任务 (记得加前缀)
    • Ctrl+o:顺时针旋转当前窗口的面板
    • z tmux 1.8新特性,最大化当前所在面板

配置

~/.tmux

###翻页 * [ 之后按翻页键就行,mac下是fn+方向键

###典型用例

1
2
3
:::text
tmux new -s wwj # 创建命名session
tmux attach -t wwj #登录

###结对编程

1
2
3
4
:::text
#需要使用同个用户操作,可以建立tmux用户
tmux new-session -s insight #创建一个组会话,名为insight
tmux new-session -t insight -s wwj #新建会话wwj到insight组

tmux+vim

Tmux 最经典的使用场景便是用 Tmux+Vim 来做一个IDE

##参考资料 * 使用tmux * 终端环境之tmux * tmux-cheatsheet * 使用 tmux 结对编程 * Tmux - Linux从业者必备利器 * 文本三巨头:zsh、tmux 和 vim