## 1. 前言 Tmux(Terminal Multiplexer)是一个非常强大的终端复用工具,它允许用户在单个终端窗口中同时运行多个终端会话。使用 tmux 的主要优势包括: 1. **会话持久化**:即使网络连接断开或终端关闭,tmux 会话仍然在后台运行,随时可以重新连接 2. **窗口分割**:可以将单个终端窗口分割成多个窗格,同时查看和操作多个程序 3. **多会话管理**:可以创建、切换和管理多个独立的工作会话 4. **提高工作效率**:尤其适合远程服务器工作、长时间运行的任务监控等场景 tmux 的核心概念包括: - **会话(Session)**:独立的工作区,可包含多个窗口 - **窗口(Window)**:相当于标签页,每个会话可以有多个窗口 - **窗格(Pane)**:窗口内的分隔区域,可以在一个窗口内显示多个终端 对于开发人员、系统管理员或任何频繁使用命令行的用户来说,tmux 是提高工作效率的必备工具。 ## 2. 安装 tmux ```bash brew install tmux ``` 安装完成之后执行 ```bash tmux ``` 下面就是 tmux 默认的界面 ![tmux](https://cdn.nlark.com/yuque/0/2024/png/1863084/1719747820098-463f3719-7886-4a8d-a83e-efce96d7e850.png) ## 3. 配置 tmux 创建 tmux 配置文件 `.tmux.conf`,以下是一些基础配置,一些基础知识可以看一下这两个视频: - [https://www.bilibili.com/video/BV1ML411h7tF](https://www.bilibili.com/video/BV1ML411h7tF) - [https://www.bilibili.com/video/BV1Mj411N7xS](https://www.bilibili.com/video/BV1Mj411N7xS) 如果你习惯看文章的话可以看一下这篇文章:[https://www.acwing.com/blog/content/18141/](https://www.acwing.com/blog/content/18141/) 如果你用 oh-my-tmux 的话可以跳过这个基础配置,直接使用 oh-my-tmux 的配置。 ```bash # The tmux configuration # -- general setw -g xterm-keys on set -s escape-time 0 set -sg repeat-time 300 set -s focus-events on set -g mouse on set -sg exit-empty on set -q -g status-utf8 on setw -q -g utf8 on set -g visual-activity off setw -g monitor-activity off setw -g monitor-bell off set -g history-limit 10000 # reload configuration bind r source-file ~/.tmux.conf \; display '~/.tmux.conf sourced' # -- set prefix unbind C-b set -g prefix 'C-a' # -- display set -g base-index 1 setw -g pane-base-index 1 setw -g automatic-rename on set -g renumber-windows on set -g set-titles on set -g display-panes-time 2000 set -g display-time 2000 set -g status-interval 1 # -- navigation # create session bind C-c new-session # window management bind -n C-w new-window -c "#{pane_current_path}" # pane resizing bind -r J resize-pane -D 5 bind -r K resize-pane -U 6 bind -r L resize-pane -R 5 bind -r H resize-pane -L 5 set -g status-keys emacs set -g mode-keys vi # bind -n M-v copy-mode # copy Mode bind-key -T copy-mode-vi 'v' send -X begin-selection # start selecting text with "v" bind-key -T copy-mode-vi 'y' send -X copy-selection # copy text with "y" ``` ## 4. 安装 oh-my-tmux > 注意:如果你安装了 oh-my-tmux,它会覆盖你原来的配置 .tmux.conf,所以如果需要的话请提前备份。 安装在家目录下 ```bash cd git clone https://github.com/gpakosz/.tmux.git ln -s -f .tmux/.tmux.conf cp .tmux/.tmux.conf.local . ``` 以后修改 `.tmux.conf.local`文件即可 安装之后的效果如下: ![oh my tmux](https://cdn.nlark.com/yuque/0/2024/png/1863084/1719759989176-af10f91f-93f9-4c46-94c4-e6d73517ec90.png) 常用快捷键可以查看官方文档:[https://github.com/gpakosz/.tmux](https://github.com/gpakosz/.tmux) 文档中没有给出的配置可以自行查看 `vim ~/.tumx.conf`,所有的配置都在这里。 ## 5. 最后 Tmux 的配置就比较简单,只有一个配置文件,使用 oh-my-tmux 的配置很快就有一个可以使用切美观的 tmux,关于快捷键的映射大家慢慢熟悉就好了,里面默认的一些快捷键也是比较常用的映射,需要自定义的可以自己指定即可。 ## 参考资料 + Tmux 教程:[https://www.acwing.com/blog/content/18141/](https://www.acwing.com/blog/content/18141/) + 两个讲解 tmux 非常好的视频 - [https://www.bilibili.com/video/BV1ML411h7tF](https://www.bilibili.com/video/BV1ML411h7tF) - [https://www.bilibili.com/video/BV1Mj411N7xS](https://www.bilibili.com/video/BV1Mj411N7xS)