Tmux是一个很好用的终端分屏工具,最近一直想找时间配置一下,顺便记录一下折腾的流程。
安装
brew install tmux
运行Tmux,ctrl+b
将tmux激活为快捷键接受模式,再按下%即可左右切分当前窗口
窗格操作
窗格(Pane)操作
%
左右平分出两个窗格"
上下平分出两个窗格x
关闭当前窗格{
当前窗格前移}
当前窗格后移;
选择上次使用的窗格o
选择下一个窗格,也可以使用上下左右方向键来选择space
切换窗格布局,tmux 内置了五种窗格布局,也可以通过⌥1
至⌥5
来切换z
最大化当前窗格,再次执行可恢复原来大小q
显示所有窗格的序号,在序号出现期间按下对应的数字,即可跳转至对应的窗格
窗口操作
窗口(window)操作
tmux 除了窗格以外,还有窗口(window) 的概念。依次使用以下快捷键来熟悉 tmux 的窗口操作:
c
新建窗口,此时当前窗口会切换至新窗口,不影响原有窗口的状态p
切换至上一窗口n
切换至下一窗口w
窗口列表选择,注意 macOS 下使用⌃p
和⌃n
进行上下选择&
关闭当前窗口,
重命名窗口,可以使用中文,重命名后能在 tmux 状态栏更快速的识别窗口 id0
切换至 0 号窗口,使用其他数字 id 切换至对应窗口f
根据窗口名搜索选择窗口,可模糊匹配
其实还有Session操作,但是目前用不到,等用到再说吧。:airplane:
Session操作
刚说完flag就倒了,本地使用还好,SSH的时候session真的必不可少。
下面列出一些session的操作
启动新会话:
tmux [new -s 会话名 -n 窗口名]
恢复会话:
tmux at [-t 会话名]
列出所有会话:
tmux ls
关闭会话:
tmux kill-session -t 会话名
关闭所有会话:
tmux kill-server
session快捷键
首先按下前缀键再进行如下操作
:new<回车>
启动新会话s
列出所有会话$
重命名会话d
断开当前会话D
选择要断开的会话ctrl+z
挂起当前会话r
重载当前会话:
进入命令行模式,可以用ls等命令
配置部分
如果没有配置文件先新建一个touch ~/.tmux.conf
在里面配置如下
# Send prefix
set-option -g prefix C-a
unbind-key C-a
bind-key C-a send-prefix
# Use Alt-arrow keys to switch panes
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
# Shift arrow to switch windows
bind -n S-Left previous-window
bind -n S-Right next-window
# Mouse mode
set -g mouse on
# Set easier window split keys
bind-key v split-window -h
bind-key h split-window -v
# Easy config reload
bind-key r source-file ~/.tmux.conf ; display-message "tmux.conf reloaded"
- Send prefix:把prefix的ctrl+b变为了ctrl+a
- Use Alt-arrow keys to switch panes:直接用alt+箭头在pane之间切换
- Shift arrow to switch windows:直接使用shift+箭头在window之间切换
- Mouse mode:用鼠标自由调整pane大小,还可以通过右键实现一些基本操作
- Set easier window split keys:使用v代表横向分割,h代表纵向。比%和"更直观一些
- Easy config reload:修改完.tmux.conf配置之后不需要
tmux kill-session
直接prefix+r就可以重新加载。(这里其实没必要设置,因为后面配置了保存工作区的插件,快捷键冲突,真的需要这个功能可以把快捷键换成别的。)
保存工作区
有时候服务器还是需要重启的,重启之后所有Session都会丢失,开机后还得重新建立Session,Window和Pane。
使用tmux-ressurect,可以一键保存Workspace。
安装插件
使用tpm(Tmux Plugin Manager)安装。
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
把下面的配置加入~/.tmux.conf
下面的配置就是把通过tpm要装的几个插件先列到配置里。安装通过<perfix> + I
来实现安装。
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
run '~/.tmux/plugins/tpm/tpm'
保存后重新加载配置,并且安装插件。
安装插件方法上面已经说过就是<prefix> + I
更新与卸载都很简单
<prefix> U
<prefix> alt+u
之后就很简单了,<prefix> ctrl-s
为保存,<prefix> ctrl-r
为恢复。
后记
Tmux好用是好用,但是还是有一些痛点的。比如复制粘贴就不太灵光,在MacOS下虽然可以摁住Fn进行选择,然后Command⌘+C/V进行复制粘贴,但是外接键盘的时候没有Fn键就很尴尬。
改成用iTerm解决了,最终结果如下。