Tmux 是一个终端复用器: 可以激活多个终端或
窗口, 在每个终端都可以单独访问,每一个终端都可以访问,运行和控制各自的程序
.tmux 类似于screen,可以关闭窗口将程序放在后台运行,需要的时候再重新连接。
Mac 终端管理神器 iTerm 也可以很好的多标签页面和分割窗口工作,而 Tmux 最大的好处
是可以离线后可以储存窗口布局和使用状态,在 SSH 环境下尤其有帮助
安装
Mac
1 | $ brew install tmux |
Centos
1 | $ yum install tmux |
使用
Session
1 | tmux [new -s session-name] # 创建session,并命名,默认创建一个无名会话 |
windows
1 | tmux new-window # 创建一个新的 window |
Panes
1 | tmux split-window # 将 window 垂直划分为两个 pane |
其他
1 | tmux list-keys |
prefix 快捷键
基础操作
1 | ? 列出所有快捷键;按q返回 |
窗口操作
1 | c # 创建新窗口 |
面板操作
1 | " # 将当前面板上下分屏 |
配置文件
Tmux 可以在 ~/.tmux.conf
或 /etc/.tmux.conf
中配置快捷键等操作1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44# 改变 prefix 快捷键为 <C-a>
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# 绑定重新加载 ~/.tmux.conf 的快捷键
bind r source-file ~/.tmux.conf ; display-message "Config reloaded.."
set -g default-terminal "screen-256color" # use 256 colors
set -g display-time 5000 # status line messages display
set -g history-limit 100000 # scrollback buffer n lines
set -g base-index 1 # 窗口索引从1开始,默认是0
set -g pane-base-index 1
setw -g mode-keys vi # use vi in copy mode
# set-option -g default-shell $SHELL
# 美化状态栏
set-option -g status on
set-option -g status-interval 2
set-option -g status-justify "centre"
set-option -g status-left-length 60
set-option -g status-right-length 90
set-option -g status-left "#(~/WebstormProjects/wxnacy.github.io/shells/tmux/plugin/tmux-powerline/powerline.sh left)"
set-option -g status-right "#(~/WebstormProjects/wxnacy.github.io/shells/tmux/plugin/tmux-powerline/powerline.sh right)"
set-window-option -g window-status-current-format "#[fg=colour235, bg=colour27]⮀#[fg=colour255, bg=colour27] #I ⮁ #W #[fg=colour27, bg=colour235]⮀"
# 分割窗口
unbind '"'
bind - splitw -v # 垂直分割
unbind %
bind | splitw -h # 水平分割
# 选择面板,更符合 Vim 习惯
bind k selectp -U
bind j selectp -D
bind h selectp -L
bind l selectp -R
# 使用 X 关闭 window
unbind &
bind X killw