tmux 使用及配置

配置

1
2
3
4
5
$ cd ~
$ git clone https://github.com/gpakosz/.tmux.git
$ ln -s -f .tmux/.tmux.conf
$ cp .tmux/.tmux.conf.local .
# mouse mode just use ctrl+b; m
  • 使用 gpakosz/.tmux 配置的 不用再次配置
  • 如果需要修改可以查看下方配置 config file at ~/.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
45
46
47
48
49
50
51
52
53
54
set -g default-command /bin/zsh # can change bash
set -g default-shell /bin/zsh   # can change bash

# mouse
setw -g mouse-resize-pane on
setw -g mouse-select-pane on
setw -g mouse-select-window on
setw -g mode-mouse on

set-option -g display-time 5000 # 提示信息的持续时间;设置足够的时间以避免看不清提示,单位为毫秒
set-option -g repeat-time 1000 # 控制台激活后的持续时间;设置合适的时间以避免每次操作都要先激活控制台,单位为毫秒

set-option -g base-index 1                        # 窗口的初始序号;默认为0,这里设置为1
set-option -g display-time 5000                   # 提示信息的持续时间;设置足够的时间以避免看不清提示,单位为毫秒
set-option -g repeat-time 1000                    # 控制台激活后的持续时间;设置合适的时间以避免每次操作都要先激活控制台,单位为毫秒
set-option -g status-keys vi                      # 操作状态栏时的默认键盘布局;可以设置为vi或emacs
set-option -g status-utf8 on                      # 开启状态栏的UTF-8支持

---
set-option -g status-bg blue
set-option -g status-fg '#bbbbbb'
set-option -g status-left-fg green
set-option -g status-left-bg blue
set-option -g status-right-fg green
set-option -g status-right-bg blue
set-option -g status-left-length 10               # 状态栏左方的内容长度;
set-option -g status-right-length 15              # 状态栏右方的内容长度;建议把更多的空间留给状态栏左方(用于列出当前窗口)
set-option -g status-left '[#(whoami)]'           # 状态栏左方的内容
set-option -g status-right '[#(date +" %m-%d %H:%M ")]'     # 状态栏右方的内容;这里的设置将得到类似23:59的显示
set-option -g status-justify "centre"             # 窗口列表居中显示
set-option -g default-terminal "screen-256color"  # 支持256色显示
分割窗口边界的颜色
set-option -g pane-active-border-fg '#55ff55'
set-option -g pane-border-fg '#555555'
---
此类设置可以在命令行模式中输入show-window-options -g查询
set-window-option -g mode-keys vi    # 复制模式中的默认键盘布局;可以设置为vi或emacs
set-window-option -g utf8 on         # 开启窗口的UTF-8支持
set-window-option -g mode-mouse on   # 窗口切换后让人可以用鼠标上下滑动显示历史输出
---
窗口切分快捷键(没设置成功)
bind \ split-window -h                      # 使用 \ 将窗口竖切
bind - split-window -v                      # 使用 - 将窗口横切
bind K confirm-before -p "kill-window #W? (y/n)" kill-window    # 使用大写 K 来关闭窗口
bind '"' choose-window                      # 双引号选择窗口
---
Pane之间切换的快捷键
bind h select-pane -L                       # 定位到左边窗口的快捷键
bind j select-pane -D                       # 定位到上边窗口的快捷键
bind k select-pane -U                       # 定位到下方窗口的快捷键
bind l select-pane -R                       # 定位到右边窗口的快捷键

使用

 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
# 列出 session
$ tmux list-sessions
$ tmux ls

# 进入下标 0 的会话
$ tmux attach -t 0

# 创建名为 docker 的 session
$ tmux new -s docker
# 创建名为 docker 的 session 窗口名为 docker
$ tmux new -s docker -n docker
# 进入名为 docker 的 session
$ tmux attach -t docker
# 简写为
$ tmux at -t docker
## old verison
$ tmux attach -s docker

# 快速进入 at = attach
$ tmux at -t docker
## old verison
$ tmux at -s docker

# kill名为 docker 的 session
$ tmux kill-session -t docker
1
2
3
ctrl+b s      // 列出所有会话
ctrl+b d      // detach当前session(可以认为后台运行)
ctrl+d        // 关闭会话 = exit
1
2
3
4
5
6
7
ctrl+b c      // 创建一个新窗口
ctrl+b &      // 关闭当前窗口
ctrl+b p      // 切换到上一个窗口
ctrl+b n      // 切换到下一个窗口
ctrl+b w      // 从列表中选择窗口
ctrl+b 窗口号  // 使用窗口号切换窗口(例如窗口号为1的, 则C-b 1)
ctrl+b ,      // 重命名当前窗口,便于识别各个窗口
  • 窗口操作
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
ctrl + b %             // 分成左右两个窗格
ctrl + b "             // 分成上下两个窗格
ctrl + b z             // 当前窗格全屏显示,再按一次恢复
ctrl + b q             // 显示窗格编号
ctrl + b t             // 在当前窗格显示时间
ctrl + b <arrow key>   // 光标切换到其他窗格
ctrl + b o             // 光标切换到下一个窗格
ctrl + b {             // 左移当前窗格
ctrl + b }             // 右移当前窗格
ctrl + b Ctrl+o        // 上移当前窗格
ctrl + b Alt+o         // 下移当前窗格
ctrl + b space         // 切换窗格布局
1
2
3
4
5
ctrl+b %      //横向分Terminal(左右)
ctrl+b "      //纵向分Terminal
ctrl+b 方向键  //则会在自由选择各面板
ctrl+b x      //关闭当前pane
ctrl+b q      //显示面板编号
  • 进行鼠标滚轮操作
1
2
3
4
鼠标滚轮模式 ctrl + b 后松开,再按 m
按下 ctrl + b 后松开,再按 [
用鼠标选中文本,被选中的文本会被自动复制到tmux的剪贴板
按下 ctrl + b 后松开,再按 ],会将剪贴板的内容粘贴到光标处
1
2
3
4
5
6
7
8
先按 ctrl+b ,然后输入: ,进入命令行模式

输入
set -g mouse on
不行的话换成
set-option-g mouse on

按住shift再操作即可,复制粘贴都要按住