配置

# ~/.tmux.conf
# 设置默认 shell
 set-option -g default-shell /bin/fish

# 设置默认颜色
 set -g default-terminal 'screen-256color'

# 支持 utf-8
 set -g status-utf8 on

# 设置历史记录最大条数
 set -g history-limit 100000

# 设置按键模式为 Vi 模式
 set-window-option -g mode-keys vi

# mouse mode on
 set -g mode-mouse on
 set -g mouse-select-pane on
 set-option -g allow-rename off

# index
 set -g base-index 1
 setw -g pane-base-index 1

# 外观
# tmux-prefix-highlight
 set -g status-right '#{prefix_highlight} #H | %a %Y-%m-%d %H:%M'
 set -g @prefix_highlight_show_copy_mode 'on'
 set -g @prefix_highlight_copy_mode_attr 'fg=white,bg=blue'

# 启用活动警告
 setw -g monitor-activity on
 set -g visual-activity on

# 居中窗口列表
 set -g status-justify centre

session 命令


# 新建名称为 foo 的会话 : new-session
 tmux new -s foo

 # 列出所有 tmux 会话 : list-session
 tmux ls

 # 恢复至上一次的会话 attach-session
 tmux a

 # 恢复名称为 foo 的会话,会话默认名称为数字
 tmux a -t foo

 # 删除名称为 foo 的会话
 tmux kill-session -t foo

# 删除所有的会话
 tmux kill-server

快捷键

session
用途
?列出所有快捷键
s选择 session
d暂时退出 session
D选择暂时退出 session 列表
:进入命令行模式
C-z同d
t显示时间
window
介绍
c新建窗口
&关闭窗口
[0-9]数字键切换到指定窗口
p切换至上一窗口
n切换至下一窗口
l前后窗口间互相切换
w通过窗口列表切换窗口
,重命名当前窗口
.修改当前窗口编号,相当于重新排序
f在所有窗口中查找关键词,便于窗口多了切换
pane
介绍
"将当前面板上下分屏
%将当前面板左右分屏
x关闭当前分屏
!将当前面板置于新窗口,即新建一个窗口,其中仅包含当前面板
ctrl+方向键以1个单元格为单位移动边缘以调整当前面板大小
alt+方向键以5个单元格为单位移动边缘以调整当前面板大小
q显示面板编号
o选择当前窗口中下一个面板
方向键移动光标选择对应面板
{向前置换当前面板
}向后置换当前面板
A-o逆时针旋转当前窗口的面板
C-o顺时针旋转当前窗口的面板
z最大化当前所在面板
page up向上滚动屏幕,q 退出
page down向下滚动屏幕,q 退出

其它操作

交换 pane 位置

命令模式 swap-pane -s 1 -t 3 交换 pane 1 跟 pane 3 的位置, 交换当前 pane 跟 pane 3 位置 swap-pane -s 3

复制

开启了鼠标模式后,就可以 Shift 加鼠标来选择跟复制了, 也可以 Shift + Ctrl + c 跟 Shift + Ctrl + v

发送命令

tmux list-panes -a 列出所有 pane
tmux send-keys -t $pane_name '$command' C-m 来向 pane 发送命令, e: tmux send-keys -t ff:1.1 'top' C-m 其中 C-m 表示回车, C-z 表示撤销 Ctrl-c

设置 tmux 后 vi 背景颜色问题
# ~/.tmux.conf
set -g default-terminal "screen-256color"

#---
# ~/.vimcr
set c_Co=256

#---
# ~/.bashrc
# ryan
 export TERM="xterm-256color"
 # ryan
 alias tmux="tmux -2"

#---
#  ~/.profile
# ryan 256 color support
 if [ -e /usr/share/terminfo/x/xterm-256color ]; then
    export TERM='xterm-256color'
 else
   export TERM='xterm-color'
 fi


参考

  1. https://www.jianshu.com/p/6699d9f2685d
  2. https://www.cnblogs.com/kaiye/p/6275207.html
  3. https://gist.github.com/ryerh/14b7c24dfd623ef8edc7
  4. https://www.atjiang.com/pragmatic-tmux-scripting-customized-envs/
  5. https://superuser.com/questions/399296/256-color-support-for-vim-background-in-tmux