20250707-tmux-readme
Table of Contents
⚙️ 一、核心配置优化(修改 `~/.tmux.conf`)
1. 修改前缀键(默认 `Ctrl+b` → `Ctrl+a`,更顺手)
unbind C-b set -g prefix C-a bind C-a send-prefix
2. 启用鼠标支持(拖动调整窗格、点击切换、滚轮滚动)
set -g mouse on 新版本直接启用
3. 窗格分割与导航快捷键(Vim 风格操作)
bind | split-window -h 垂直分割(原%) bind - split-window -v 水平分割(原") bind h select-pane -L 左移窗格 bind j select-pane -D 下移窗格 bind k select-pane -U 上移窗格 bind l select-pane -R 右移窗格
4. 状态栏美化
set -g status-interval 1 刷新频率 set -g status-right "[fg=cyan]%Y-%m-%d %H:%M" 右侧显示时间 set -g status-left "[fg=green]S" 左侧显示会话名
5. 真彩色支持(需终端支持)
set -g default-terminal "tmux-256color" set -ag terminal-overrides ",xterm-256color:RGB"
🚀 二、实用操作攻略
会话管理
- 创建/命名会话:`tmux new -s dev`
- 分离会话:`Ctrl+a d`(后台保持运行)
- 重连会话:`tmux attach -t dev`
- 杀死会话:`tmux kill-session -t dev`
- 列表会话:`tmux ls`
窗格操作
- 同步输入:`Ctrl+a :setw synchronize-panes on`(多窗格同步执行命令)
- 最大化窗格:`Ctrl+a z`(再按一次恢复)
- 调整窗格大小:`Ctrl+a H/J/K/L`(按5单位调整,需提前配置)
- 关闭窗格:`Ctrl+a x` 或直接输入 `exit`
窗口管理
- 新建窗口:`Ctrl+a c`
- 切换窗口:`Ctrl+a n/p`(下一个/上一个)或 `Ctrl+a 数字`(直达)
- 重命名窗口:`Ctrl+a ,`
复制模式(类似 Vim)
- 进入复制模式:`Ctrl+a [`
- 用方向键或 `hjkl` 移动,空格开始选择,回车复制
- 粘贴:`Ctrl+a ]`
🛠️ 三、高级功能技巧
1. 会话持久化
- 安装插件 `tmux-resurrect`:自动保存/恢复会话状态
~/.tmux.conf set -g @plugin 'tmux-plugins/tmux-resurrect' run '~/.tmux/plugins/tpm/tpm'
保存:`Ctrl+b Ctrl+s`,恢复:`Ctrl+b Ctrl+r`
2. 共享会话(多人协作)
tmux -S /tmp/pair_socket new -s pair 创建共享套接字 chmod 777 /tmp/pair_socket 设置权限
他人连接:`tmux -S /tmp/pair_socket attach`
3. 脚本化启动环境
dev_session.sh tmux new-session -d -s dev tmux send-keys -t dev:1 'cd ~/project' C-m 启动命令 tmux split-window -h -t dev:1 水平分割 tmux attach -t dev
💡 四、个性化定制建议
- 主题扩展:使用 `powerline` 或 `catppuccin` 主题美化状态栏(需安装插件)
- 快捷键提示:`Ctrl+a ?` 查看所有快捷键帮助
- 防 SSH 断开:在 `~/.bashrc` 添加自动重连:
if [ -z "$TMUX" ]; then tmux attach -t default || tmux new -s default fi
⚠️ 常见问题解决
- 终端颜色异常:`set -g default-terminal "screen-256color"`
- 滚动卡顿:`set -g terminal-overrides 'xterm:smcup@:rmcup@'`
- 配置不生效:重启 tmux 服务 `tmux kill-server`
配置重载方法:
- 修改 `~/.tmux.conf` 后,在 tmux 内执行:
Ctrl+a :source-file ~/.tmux.conf
或直接重启会话生效 。
Q:item2 tmux 选择文本无法无法剪贴板
- 启用 iTerm2 的剪贴板权限
- 这是最直接的解决方案,无需修改 tmux 配置:
- 打开 iTerm2 设置:
- 顶部菜单栏 → Preferences → Profiles → 选择当前配置文件 → General 标签页。
- 勾选剪贴板权限:
- 在 Selection 区域勾选 ✅ **Applications in terminal may access clipboard**。
- 操作流程:
- 在 tmux 中直接用鼠标选中文本 → 按 Command+C 复制 → 内容即可粘贴到系统剪贴板。
Q:MacOSX下,terminal app 使用tmux,如何复制内容到系统剪切板
pbcopy
- pbcopy 是系统原生命令 pbcopy(推荐)
1. 临时命令(直接在终端输入)
如果你只是想把某条命令的输出结果复制到剪贴板,直接用管道 | 配合 pbcopy 即可:
# 例如复制当前目录列表 ls -la | pbcopy # 复制某个文件的内容 cat ~/.zshrc | pbcopy # 复制 echo 的输出 echo "Hello World" | pbcopy
2. 配置 tmux 快捷键(一劳永逸)
# 进入复制模式后,按 'y' 键将内容复制到 macOS 剪贴板 bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy" bind-key -T copy-mode y send-keys -X copy-pipe-and-cancel "pbcopy"
结论
- iTerm2 + tmux
- iTerm2的主要目的是为了解决tmux 复制粘贴 的痛点