发布于 

上手终端复用神器 Tmux

Tmux is an open-source terminal multiplexer for Unix-like operating systems.

安装:

1
2
3
4
5
6
7
8
9
Debian/Ubuntu...
$ sudo apt install tmux
# RedHat/CentOS...
$ sudo yum install tmux
# Arch/Manjrao...
$ sudo pacman -S tmux
# Mac
$ brew install tmux
...

执行 tmux 命令启动服务,(Ctrl+dexit 退出),一个 tmux 服务可以包含多个会话,一个会话可以包含多个窗口,一个窗口可以包含多个窗格。

Pane 窗格

默认激活键为 Ctrl+B ,激活后按 % 为竖直分割窗口,以下同理:

  • %:纵向分隔窗口
  • ":横向分隔窗口
  • ;:光标切换到上一个窗格
  • o:光标切换到下一个窗格
  • ;: 切换到上一个使用的窗口
  • t: 显示时钟
  • x:关闭当前窗格
  • z:全屏显示切换
  • q:显示窗格编号
  • !:将当前窗格拆分为一个独立窗口

Ctrl + Arrow keys:调整窗格大小

Window 窗口

  • c:创建一个新窗口
  • p:切换到上一个窗口
  • n:切换到下一个窗口
  • 0~9: 切换窗口
  • w:从列表中选择窗口
  • ,:窗口重命名
  • l :切换到最后使用的窗口
  • & :关闭窗口

Sessions 会话

新建会话:

1
tmux new -s <session-name>
  • s :以菜单方式显示和选择会话
  • $:重命名会话
  • d :分离会话,tmux 仍在后台运行
1
2
3
4
5
6
7
8
9
10
11
12
重新接入某个已存在的会话,使用会话编号
$ tmux attach -t 0
# 使用会话名称
$ tmux attach -t <session-name>
# 杀死某个会话
$ tmux kill-session -t <session-name>
# 切换到某个会话
$ tmux switch -t <session-name>
# 列出当前所有 Tmux 会话的信息
$ tmux info
# 重新加载当前的 Tmux 配置
$ tmux source-file ~/.tmux.conf

修改配置

新建 ~/.tmux.conf 文件,并写入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# tmux里vim按ESC反应慢的解决方法
set -s escape-time 0
# 解绑默认激活键
unbind C-b
# 设置激活键为 Ctrl+j
set -g prefix C-j
# 将创建窗格设置成vim模式
bind-key L split-window -h
bind-key J split-window
# 将切换窗格设置成vim模式
bind-key k select-pane -U
bind-key j select-pane -D
bind-key h select-pane -L
bind-key l select-pane -R
# 在终端中显示颜色
set -g default-terminal "screen-256color"

保存后执行:tmux source-file ~/.tmux.conf

参考

* http://www.ruanyifeng.com/blog/2019/10/tmux.html
* https://blog.csdn.net/qushaming/article/details/90712886