Tmux是一个优秀的终端复用软件,支持多标签,也支持窗口内部面板的分割,更重要的是,Tmux提供了窗体随时保存和恢复的功能。想象一下假如你在公司的服务器上开了许多窗口调试程序,回到家时通过SSH连接公司电脑又要打开一堆繁琐的窗口,而且还忘记了当时调试到哪一步了,那Tmux可以帮你解决这个难题,当SSH连接断开重新连接后能够恢复到原来的工作环境。
sudo apt-get install tmux
安装完成后输入tmux进入软件,界面类似一个下方带有状态栏的终端。
Tmux基于典型的c/s模型,主要分为会话、窗口和面板三个元素:
图中左下角的3显示为当前会话,随后1 vim,2 bash,3 ssh 分别是3个窗口,蓝色bash表示当前窗口,图中用蓝色数字标记的1,2,3分别是bash窗口的三个面板。你还可以在tmux配置文件中给状态栏添加时间、天气等信息。
Tmux的所有操作必须使用一个前缀进入命令模式,默认前缀为Ctrl+b,很多人会改为Ctrl+a,你可以修改tmux.conf配置文件来修改默认前缀:
Script
# 前缀设置为<Ctrl-a>
set -g prefix C-a
# 解除<Ctrl-b>
ubind C-b
修改之后重启Tmux生效,或者先按Ctrl+b,然后输入:,进入命令行模式, 在命令行模式下输入:
Script
source-file ~/.tmux.conf
你也可以在配置文件中加入下面这句话,以后改了配置文件只需要按前缀+r了。
Script
# 将r 设置为加载配置文件,并显示"reloaded!"信息
bind r source-file ~/.tmux.conf \; display "Reloaded!"
加入如下几条语句, 现在切换面板就和vim一样了:
Script
# map Vi movement keys as pane movement keys
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
## 复制/粘贴
1. 按前缀+[ 进入复制模式
2. 按 space 开始复制,移动光标选择复制区域
3. 按 Enter 复制并退出copy-mode。
4. 将光标移动到指定位置,按前缀+ ] 粘贴
如果把tmux比作vim的话,那么我们大部分时间都是处于编辑模式,只需要在配置文件(~/.tmux.conf)中加入如下行即可以像 vim一样使用hjkl移动:
``` Vim Script
#copy-mode 将快捷键设置为vi 模式
setw -g mode-keys vi
## 会话的创建和保存
* 终端运行tmux + 会话名,创建或打开会话
* 前缀 + d 退出并保存会话
## 窗口操作
* 前缀 + c 创建一个新的window
* 前缀 + b 重命名当前window
* 前缀 + & 关闭当前window
* 前缀 + n 移动到下一个窗口
* 前缀 + p 移动到前一个窗口
* 前缀 + l 切换到上一个窗口
## 面板操作
在配置文件中添加下面两行就可以使用`前缀+ |-`来水平和垂直分割窗口:
Script
bind | split-window -h
bind - split-window -v
添加如下命令到配置文件后后可以使用HJKL来调整窗口大小:
Script
bind H resize-pane -L 5
bind J resize-pane -D 5
bind K resize-pane -U 5
bind L resize-pane -R 5
其他操作:
* \+ 方向键,切换窗口
* \+ q 显示所有面板
* \+ !/x 关闭当前面板
查看所有的按键,使用`<Ctrl-b> \+ ?`
## Tmux个性化
你可以使用[tmux-powerline](https://github.com/erikw/tmux-powerline)来美化你的状态栏。
美化之后的效果是这样的:
![](https://codingsky.oss-cn-hangzhou.aliyuncs.com/cdn/codingsky/upload/img/blog/61c65d4708d094d4b23b25c0460ecf89.jpg)
最后附上我的tmux配置文件:[.tmux.conf](https://github.com/LippiOuYang/Profiles/blob/master/tmux.conf)
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8