Ctrl+b | 激活控制台;此时以下按键生效 |
---|---|
系统操作 ? | 列出所有快捷键;按q返回 |
d | 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话 |
D | 选择要脱离的会话;在同时开启了多个会话时使用 |
Ctrl+z | 挂起当前会话 |
r | 强制重绘未脱离的会话 |
s | 选择并切换会话;在同时开启了多个会话时使用 |
: | 进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器 |
[ | 进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出 |
~ | 列出提示信息缓存;其中包含了之前tmux返回的各种提示信息 |
窗口操作 c | 创建新窗口 |
& | 关闭当前窗口 |
数字键 | 切换至指定窗口 |
p | 切换至上一窗口 |
n | 切换至下一窗口 |
l | 在前后两个窗口间互相切换 |
w | 通过窗口列表切换窗口 |
, | 重命名当前窗口;这样便于识别 |
. | 修改当前窗口编号;相当于窗口重新排序 |
f | 在所有窗口中查找指定文本 |
面板操作 ” | 将当前面板平分为上下两块 |
% | 将当前面板平分为左右两块 |
x | 关闭当前面板 |
! | 将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板 |
Ctrl+方向键 | 以1个单元格为单位移动边缘以调整当前面板大小 |
Alt+方向键 | 以5个单元格为单位移动边缘以调整当前面板大小 |
Space | 在预置的面板布局中循环切换;依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled |
q | 显示面板编号 |
o | 在当前窗口中选择下一面板 |
方向键 | 移动光标以选择面板 |
{ | 向前置换当前面板 |
} | 向后置换当前面板 |
Alt+o | 逆时针旋转当前窗口的面板 |
Ctrl+o | 顺时针旋转当前窗口的面板 |
启动新会话:
tmux [new -s 会话名 -n 窗口名]
恢复会话:
tmux at [-t 会话名]
列出所有会话:
tmux ls
关闭会话:
tmux kill-session -t 会话名
关闭所有会话:
tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill
ctrl+b
,然后: :new<回车> 启动新会话
s 列出所有会话
$ 重命名当前会话
c 创建新窗口
w 列出所有窗口
n 后一个窗口
p 前一个窗口
f 查找窗口
, 重命名当前窗口
& 关闭当前窗口
swap-window -s 3 -t 1 交换 3 号和 1 号窗口
swap-window -t 1 交换当前和 1 号窗口
move-window -t 1 移动当前窗口到 1 号
% 垂直分割
" 水平分割
o 交换窗格
x 关闭窗格
⍽ 左边这个符号代表空格键 - 切换布局
q 显示每个窗格是第几个,当数字出现的时候按数字几就选中第几个窗格
{ 与上一个窗格交换位置
} 与下一个窗格交换位置
z 切换窗格最大化/最小化
这么做可以切换到想要的窗口,输入 Tmux 前缀和一个冒号呼出命令提示行,然后输入:
:setw synchronize-panes
你可以指定开或关,否则重复执行命令会在两者间切换。 这个选项值针对某个窗口有效,不会影响别的会话和窗口。 完事儿之后再次执行命令来关闭。
如果你不喜欢默认布局,可以重调窗格的尺寸。虽然这很容易实现,但一般不需要这么干。这几个命令用来调整窗格:
PREFIX : resize-pane -D 当前窗格向下扩大 1 格
PREFIX : resize-pane -U 当前窗格向上扩大 1 格
PREFIX : resize-pane -L 当前窗格向左扩大 1 格
PREFIX : resize-pane -R 当前窗格向右扩大 1 格
PREFIX : resize-pane -D 20 当前窗格向下扩大 20 格
PREFIX : resize-pane -t 2 -L 20 编号为 2 的窗格向左扩大 20 格
按下**前缀 [**进入文本复制模式。可以使用方向键在屏幕中移动光标。默认情况下,方向键是启用的。在配置文件中启用 Vim 键盘布局来切换窗口、调整窗格大小。Tmux 也支持 Vi 模式。要是想启用 Vi 模式,只需要把下面这一行添加到 .tmux.conf 中:
setw -g mode-keys vi
启用这条配置后,就可以使用 h、j、k、l 来移动光标了。
想要退出文本复制模式的话,按下回车键就可以了。一次移动一格效率低下,在 Vi 模式启用的情况下,可以辅助一些别的快捷键高效工作。
例如,可以使用 w 键逐词移动,使用 b 键逐词回退。使用 f 键加上任意字符跳转到当前行第一次出现该字符的位置,使用 F 键达到相反的效果。
vi emacs 功能
^ M-m 反缩进
Escape C-g 清除选定内容
Enter M-w 复制选定内容
j Down 光标下移
h Left 光标左移
l Right 光标右移
L 光标移到尾行
M M-r 光标移到中间行
H M-R 光标移到首行
k Up 光标上移
d C-u 删除整行
D C-k 删除到行末
$ C-e 移到行尾
: g 前往指定行
C-d M-Down 向下滚动半屏
C-u M-Up 向上滚动半屏
C-f Page down 下一页
w M-f 下一个词
p C-y 粘贴
C-b Page up 上一页
b M-b 上一个词
q Escape 退出
C-Down or J C-Down 向下翻
C-Up or K C-Up 向下翻
n n 继续搜索
? C-r 向前搜索
/ C-s 向后搜索
0 C-a 移到行首
Space C-Space 开始选中
C-t 字符调序
d 退出 tmux(tmux 仍在后台运行)
t 窗口中央显示一个数字时钟
? 列出所有快捷键
: 命令提示符
# 鼠标支持 - 设置为 on 来启用鼠标
* setw -g mode-mouse off
* set -g mouse-select-pane off
* set -g mouse-resize-pane off
* set -g mouse-select-window off
# 设置默认终端模式为 256color
set -g default-terminal "screen-256color"
# 启用活动警告
setw -g monitor-activity on
set -g visual-activity on
# 居中窗口列表
set -g status-justify centre
# 最大化/恢复窗格
unbind Up bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp
unbind Down
bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp
# --------------------------------------------------- Tmux Config -----------------------------------------------------------
# --------------------------------------------------- prefix -----------------------------------------------------------
# 修改指令前缀
set -g prefix M-` #
unbind C-b # C-b 即 Ctrl+b 键,unbind 意味着解除绑定
bind M-` send-prefix # 绑定 Alt+` 为新的指令前缀
# 从tmux v1.6版起,支持设置第二个指令前缀
# set-option -g prefix2 ` # 设置一个不常用的`键作为指令前缀,按键更快些
# 添加载在配置文件指令为: r
bind r source-file ~/.tmux.conf \; display-message "Config reloaded.."
setw -g mode-keys vi
# --------------------------------------------------- 更改新增面板键 -----------------------------------------------------------
unbind '"'
bind - splitw -v -c '#{pane_current_path}' # 垂直方向新增面板,默认进入当前目录
unbind %
bind = splitw -h -c '#{pane_current_path}' # 水平方向新增面板,默认进入当前目录
# --------------------------------------------------- 开启鼠标支持 -----------------------------------------------------------
# v2.1及以上的版本
#setw -g mouse
#set-option -g mouse on
# --------------------------------------------------- vim 风格 -----------------------------------------------------------
# 绑定hjkl键为面板切换的上下左右键
#bind -r k select-pane -U # 绑定k为↑
#bind -r j select-pane -D # 绑定j为↓
#bind -r h select-pane -L # 绑定h为←
#bind -r l select-pane -R # 绑定l为→
# --------------------------------------------------- 复制粘贴 -----------------------------------------------------------
# 复制模式向 vi 靠拢
#旧版本:
#bind -t vi-copy v begin-selection # 绑定v键为开始选择文本
#bind -t vi-copy y copy-selection # 绑定y键为复制选中文本
# 新版本:
#bind -T copy-mode-vi v send -X begin-selection # 开始复制
#bind -T copy-mode-vi y send -X copy-selection # 复制剪切板
#bind p pasteb # 绑定p键为粘贴文本(p键默认用于进入上一个窗口,不建议覆盖)
# --------------------------------------------------- 其他 -----------------------------------------------------------
#设置窗口面板起始序号
set -g base-index 1 # 设置窗口的起始下标为1
set -g pane-base-index 1 # 设置面板的起始下标为1
set -s focus-events on
set-window-option -g automatic-rename on
set-window-option -g monitor-activity on
set-option -g history-limit 20000
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
bind -n WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -n WheelDownPane select-pane -t= \; send-keys -M
# --------------------------------------------------- 状态栏 -----------------------------------------------------------
set -wg window-status-format " #I #W " # 状态栏窗口名称格式
set -wg window-status-current-format " #I:#W#F " # 状态栏当前窗口名称格式(#I:序号,#w:窗口名称,#F:间隔符)
set -wg window-status-separator "" # 状态栏窗口名称之间的间隔
set -g message-style "bg=#202529, fg=#91A8BA" # 指定消息通知的前景、后景色
set -g status-style "bg=black, fg=#888888" # 状态栏前景背景色
set -g status-right '#[fg=#888888,bg=default]%H:%M:%S #[fg=#888888]%Y-%m-%d %a'
# 自定义状态栏
#set -g status-interval 1 # 状态栏刷新时间
#set -g status-justify left # 状态栏列表左对齐
setw -g monitor-activity on # 非当前窗口有内容更新时在状态栏通知
# --------------------------------------------------- linux -----------------------------------------------------------
# set -g status-left "Zorn #W" # 状态栏左侧内容
# set -g status-fg yellow # 设置状态栏前景黄色
# set -g status-style "bg=black, fg=yellow" # 状态栏前景背景色
# set -g status-right 'zorn@machine #{continuum_status}' # 状态栏右侧内容
# set -g status-left-length 300 # 状态栏左边长度300
# set -g status-right-length 500 # 状态栏左边长度500
# set -wg window-status-current-style "bg=black" # 状态栏当前窗口名称的样式
set -wg window-status-current-style "fg=#cccccc" # 状态栏当前窗口名称的样式
# set -wg window-status-last-style "fg=red" # 状态栏最后一个窗口名称的样式
#set -g status-left "🐶 #W" # 状态栏左侧内容
# --------------------------------------------------- mac -----------------------------------------------------------
# rainbar
# set-option -g status-utf8 on
#set -g status-right '#(rainbarf)'
# Gnome Terminal
# set -g status-right '#(rainbarf --rgb)'
# Status bar
# powerline
#set -g status-bg black
#set-option -g status on
#set-option -g status-interval 1
#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 "#(~/.config/tmux/tmux-powerline/powerline.sh left)"
#set-window-option -g window-status-current-format '#[fg=Magenta,bold] #I #W:#F'
# --------------------------------------------------- fzf_panes ----------------------------------------------------
#set-hook -g pane-focus-in "run -b 'bash ~/.config/tmux/fzf_panes.tmux update_mru_pane_ids'"
#bind-key -n M-n run -b 'bash ~/.config/tmux/fzf_panes.tmux new_window'
# --------------------------------------------------- one colors ---------------------------------------------------
# Add truecolor support
#set-option -ga terminal-overrides ",xterm-256color:Tc"
# Default terminal is 256 colors
#set -g default-terminal "screen-256color"
# --------------------------------------------------- End -----------------------------------------------------------