Tmux

这里是一份教程,可以参考。

基本概念

从服务的角度:server - client

tmux有一个server管理多个client,每个client和一个session连接,用户启动tmux的时候实际上是启动一个client连接到serverclient是伪终端,进程实际由server管理,当用户断开连接后,运行在client中的进程不会被中断。

从显示的角度:session - windows - pane(terminal)

每个session可以与零个或者多个client相连接,每个session的命名必须唯一。每个session管理多个windos,windows的命名可以重复,可以连接一个或者多个sessionwindows内有多个pane,其中有一个为活跃的pane

当所有的session中的所有进程终止的时候server终止

命令模式

PREFIX 默认为CTRL-b,按下PREFIX b :进入命令模式,按下PREFIX b ?查看所有命令,按下PREFIX b /查看单个命令

rename-windows [name]

rename-session [name]

Tree 模式

session

Tmux有一个模式叫树模式,在Tmux中按下PREFIX b s或者PREFIX b w进入,前者显示当前附着的session的情况,后者显示所有session的情况,还可以通过:choose-tree进入。进入后屏幕分为上部分树和下部分预览。

树模式下可以按下t标记,T取消所有标记,x删除当前项,X删除所有标记项目,也可以用:使用命令对所有的标记项操作。r可以反向排序,v可以取消预览。

client

Tmux也有关于client的树模式,按下PREFIX b D进入,可以看到当前活跃的client以及和哪一个session相连接。

基本使用

创建client

tmux ls: 列出所有的session

tmux: 默认会创建一个client和一个session,等同于tmux new

tmux -t session_name: 创建一个client同时连接session

创建session

tmux new:创建一个默认的名为indexsession(即为名字就是序号)

tmux new -syourname: 指定名字为yourname

创建windows

:neww: 创建默认窗口,名字为通常为bash

:neww -nyourname: 创建窗口同时命名

:neww -t999: 创建窗口同时指定序号为999

:neww top: 创建窗口同时命名和执行改命令top

切换windows

PREFIX b [0-9]: 切换窗口为序号[0-9]

PREFIX b ': 输入序号然后切换到序号窗口

PREFIX b p: 切换到前窗口

PREFIX b n: 切换到后窗口

创建panes

PREFIX b %: 垂直分割

PREFIX b ": 水平分割

切换panes

PREFIX b {: 当前pane和上边pane交换位置

PREFIX b }: 当前pane‵和下边pane`交换位置

PREFIX b up/down/right/left: 切换当前聚焦的pane

修改pane的大小

PREFIX b PREFIX up/down/right/left:上下左右微调

PREFIX b M-up/down/right/left: 上下左右大调

PREFIX b M-1/2/3/4/5: 调整布局格式

删除

PREFIX b &: 删除当前session

PREFIX b x: 删除当前panes

复制和粘贴

PREFIX b [: 进入复制模式/滚轮模式,复制模式下会冻结输出

  PREFIX space:开始选取复制

  PREFIX w:结束复制

  q: 退出复制

PREFIX b ]: 粘贴上一次复制的文本

PREFIX b =: 选择要粘贴的文本

其他

:set -g mouse on: 支持鼠标

Tmux配置文件(TODO)

Tmux插件

可以安装tpm来管理和安装插件

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

在配置文件内写入~/.tmux.conf

# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin 'github_username/plugin_name#branch'
# set -g @plugin 'git@github.com:user/plugin'
# set -g @plugin 'git@bitbucket.com:user/plugin'

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

在tmux中使用PREFIX b I即可安装

tmux-resurrect 自动保存会话

教程 配置文件

set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

set -g @continuum-save-interval '15'
set -g @continuum-restore 'on'
set -g @resurrect-capture-pane-contents 'on'
​
# Other config ... 

​
run -b '~/.tmux/plugins/tpm/tpm'

快捷键

PREFIX + CTRL s:保存会话
PREFIX + CTRL r:加载会话

tmux-yank 和系统剪切板共用

必须装有xsel或者xclip

set -g @plugin 'tmux-plugins/tmux-yank'

普通模式:

PREFIX-y复制当前光标后内容到剪切板

复制模式:按下PREFIX-[进入

PREFIX-space选中内容后,按下y复制,按下Y复制并且粘贴到当前命令行

当然你也可以在tmux.conf中设置默认交互的剪切板

# ~/.tmux.conf
set -g @yank_selection 'primary' # or 'secondary' or 'clipboard'

results matching ""

    No results matching ""

    results matching ""

      No results matching ""