tmux 简明指南
tmux(Terminal Multiplexer)是一款强大的终端复用工具,允许用户在一个终端中运行多个会话,方便地在不同任务之间切换,大大提升了工作效率。本文将简要介绍 tmux 的使用,包括如何开启鼠标控制、常用的配置、常用的命令,以及如何通过脚本快速自定义创建多个窗口和分割。
1. 开启鼠标控制
默认情况下,tmux 不支持鼠标操作。通过开启鼠标支持,可以使用鼠标在不同的窗格和窗口之间切换,调整窗格大小等。
在 tmux 配置文件 ~/.tmux.conf
中添加以下内容:
1 | # 开启鼠标支持 |
保存配置文件后,重新加载 tmux 配置:
1 | # 在 tmux 会话中,按下以下快捷键 |
其中,<Prefix>
默认是 Ctrl+b
,即先按 Ctrl+b
,然后松开,再按 :
进入命令模式,输入上述命令即可。
2. 常用的配置
以下是一些常用的 tmux 配置,可根据个人喜好进行调整:
1 | # 修改前缀键为 Ctrl+a |
3. 常用的命令
以下是一些 tmux 中常用的命令和快捷键:
会话管理
创建新会话
1
tmux new -s session_name
列出现有会话
1
tmux ls
附加到会话
1
tmux attach -t session_name
分离会话
1
<Prefix> d
杀死会话
1
tmux kill-session -t session_name
窗口管理
新建窗口
1
<Prefix> c
切换窗口
1
2
3<Prefix> n # 下一个窗口
<Prefix> p # 上一个窗口
<Prefix> l # 上一次访问的窗口重命名窗口
1
<Prefix> ,
关闭窗口
1
<Prefix> &
窗格管理
分割窗格
1
2<Prefix> " # 水平分割
<Prefix> % # 垂直分割切换窗格
1
2<Prefix> o # 下一窗格
<Prefix> 方向键 # 移动到指定方向的窗格调整窗格大小
1
<Prefix> Ctrl+方向键
关闭窗格
1
<Prefix> x
复制粘贴(复制模式)
进入复制模式
1
<Prefix> [
退出复制模式
1
q
滚动
1
使用方向键或 PgUp、PgDn
复制文本
1
在复制模式下,按空格开始选择,移动光标选择文本,按 y 复制
4. 通过脚本快速自定义创建多个窗口和分割
tmux 支持通过脚本自动化地创建会话、窗口和窗格。这对于需要重复设置相同开发环境的场景非常有用。
示例:创建一个自定义会话
以下是一个示例脚本,可以快速创建一个包含多个窗口和分割的 tmux 会话。
脚本内容(保存为 start_tmux.sh
):
1 |
|
脚本说明:
- 会话名称:
SESSION_NAME="my_session"
定义了会话的名称。 - 检查会话是否存在:
tmux has-session
用于检查会话是否已存在,避免重复创建。 - 创建会话和窗口:
tmux new-session
和tmux new-window
用于创建新的会话和窗口。 - 分割窗格:
tmux split-window
用于分割当前窗口的窗格,-h
表示水平分割,-v
表示垂直分割。 - 发送命令:
tmux send-keys
用于在指定的窗格中执行命令,C-m
表示回车。 - 选择窗口:
tmux select-window
用于切换到指定的窗口。
使用方法:
保存脚本:将上述脚本内容保存为
start_tmux.sh
。赋予执行权限:
1
chmod +x start_tmux.sh
运行脚本:
1
./start_tmux.sh
脚本模板
以下是一个通用的 tmux 脚本模板,可根据需要进行修改:
1 |
|
模板说明:
- 修改会话名称:将
SESSION_NAME="your_session_name"
中的your_session_name
替换为你想要的会话名称。 - 自定义窗口和窗格:根据需要添加或删除
tmux new-window
、tmux split-window
和tmux send-keys
等命令。 - 命令执行:在
tmux send-keys
中替换command_for_pane
和command_for_window
为你需要执行的实际命令。
常用 tmux 脚本命令:
创建新会话:
1
tmux new-session -s session_name -n window_name -d
创建新窗口:
1
tmux new-window -t session_name:window_number -n window_name
分割窗格:
1
tmux split-window -h/-v -t session_name:window_number.pane_number
选择布局:
1
tmux select-layout -t session_name:window_number layout_name
常用布局有
even-horizontal
、even-vertical
、main-horizontal
、main-vertical
、tiled
。选择窗口或窗格:
1
2tmux select-window -t session_name:window_number
tmux select-pane -t session_name:window_number.pane_number发送命令:
1
tmux send-keys -t session_name:window_number.pane_number 'your_command' C-m
通过以上模板和示例,您可以轻松地通过脚本快速定制 tmux 的工作环境,实现高效的工作流程。