tmux配置与使用

tmux 使用

    • 窗口进程管理
      即使终端关闭(cmd+Q/W),tmux的窗口依旧运行
      打开一个tmux窗口
    tmux new -s 窗口名字

    将该tmux窗口放入后台

    ctrl+b d

    查看所有tmux窗口的方法

    tmux ls

    唤出(使后台的窗口显示)tmux窗口

    tmux a -t 窗口名字

    显示最后放入后台的窗口

    tmux a

    杀死tmux窗口的方法

    tmux kill-session -t 窗口名字

    杀死当前窗口

    ctrl+b &
    选择y (yes)
  • 窗口分区管理

  • 页面
    单个程序只给一屏用于输出,超出此范围,要翻页查看:
    ctrl+b [ fn+↑/↓ esc
    进入拷贝模式:拷贝模式中,新输出的文字不会显示
    ctrl+b [ :进入拷贝模式
    fn+上/下键 :翻页
    esc :退出拷贝模式
    进入黏贴模式
    ctrl+b ]

tmux配置

我的~/.tmux.conf文件

# --- base --- #
set -g default-terminal "screen-256color"
set -g display-time 3000
set -g history-limit 10000
set -g base-index 1
set -g pane-base-index 1
set -s escape-time 0
# set -g mouse on # 打开以下各个鼠标功能

# set -g mode-mouse on # 支持鼠标选取文本等
# set -g mouse-resize-pane on # 支持鼠标拖动调整面板的大小(通过拖动面板间的分割线)
# set -g mouse-select-pane on # 支持鼠标选中并切换面板
# set -g mouse-select-window on # 支持鼠标选中并切换窗口(通过点击状态栏窗口名称)
# 允许用鼠标(含触控板)翻页,但会把vim的鼠标翻页给劫持走

# 复制黏贴
# set-option -g default-command "reattach-to-user-namespace -l bash"
# setw -g mode-keys vi
# bind-key -t vi-copy v begin-selection
# bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"

# ctrl-a [ 进入 vi 模式
# q:退出vi模式
# 使用 hjkl,wb 等 vi 快捷键移动到目标位置
# v :进入 Visual模式(即选词模式) ,开始选择内容
# 使用 vi 快捷键移动,直到要复制的内容被选中
# y:复制操作系统的粘贴板
# 粘贴:tmux内ctrl+],在操作系统内Cmd-V

# ctrl+r : reload my change in this file (~/.tmux.conf)
bind r source-file ~/.tmux.conf \; display "Reloaded!"

# 分割窗口
bind \ split-window -h # prefix+\ : 竖分
unbind %
bind - split-window -v # prefix+-横分
unbind '"'

# 窗口间移动
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# 窗口改大小
bind -r ^k resizep -U 5 # upward (prefix Ctrl+k)
bind -r ^j resizep -D 5 # downward (prefix Ctrl+j)
bind -r ^h resizep -L 5 # to the left (prefix Ctrl+h)
bind -r ^l resizep -R 5 # to the right (prefix Ctrl+l)

bind -r e lastp # 选择最后一个面板
bind -r ^e last # 选择最后一个窗口

bind -r ^[ swapp -U # 与前一个面板交换位置: ctrl+a+[(ctrl不松手)
bind -r ^] swapp -D # 与后一个面板交换位置:ctrl+a+](ctrl不松手)

# select the last pane (prefix e)
bind e lastp
# select the last window (prefix Ctrl+e)
bind ^e last

# kill pane (prefix q)
bind q killp
# kill window (prefix Ctrl+q)
bind -r ^q killw
bind Q kill-session

# 显示会话列表
unbind w
bind w display-panes
unbind s
unbind ^s
unbind S
bind s choose-window
bind -r ^s choose-session
bind S choose-tree
# list-windows -a

# 显示窗口列表

# 修改进入命令模式按键
# remap prefix to Control + a
set -g prefix C-a
unbind C-b
bind C-a send-prefix