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)

  1. 进入复制模式:`Ctrl+a [`
  2. 用方向键或 `hjkl` 移动,空格开始选择,回车复制
  3. 粘贴:`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"
  • 使用方式:
    1. 按 Ctrl+b [ 进入复制模式。
    2. 移动鼠标选择要复制的内容,选好之后,按住 shift 键
    3. 按 y 键,这一步的目的是把选中的内容复制到 pbcopy ,内容就会出现在系统剪贴板中
    4. 最后用 Cmd + V 粘贴到任何地方。

结论

  • iTerm2 + tmux
    • iTerm2的主要目的是为了解决tmux 复制粘贴 的痛点

Date: 2026-03-06 五 14:17