配置使用 Tmux
<h2>安装</h2>
<pre><code class=“language-Bash”>brew install tmux
查看版本
tmux -V</code></pre>
<h2>基础配置</h2>
<p>部分参数</p>
<p><code>set -g</code>:全局设置,适用于所有窗口。</p>
<p><code>bind</code> 命令用于绑定键盘快捷键以执行特定命令,后面可以跟一些参数,</p>
<p><code>bind -n</code> :不使用前缀键。</p>
<p><code>bind -r</code> :允许重复按键。(即,长按快捷键可以连续执行命令)</p>
<p><code>unbind</code> :解除已绑定的键盘快捷键</p>
<p><code>unbind -n</code> :解除不带前缀键的绑定</p>
<p><code>unbind -a</code> :移除所有通过 <code>bind</code> 命令设置的键绑定</p>
<h3><code>prefix</code>前缀键设置</h3>
<pre><code class=“language-Bash”>set -g prefix2 C-s
bind C-s send-prefix -2
</code></pre>
<p><code>set -g prefix2 C-s</code>: 这行配置将 tmux 的第二个前缀键设置为 <code>C-s</code>(即 <code>Ctrl-s</code>)。</p>
<p>在这里,<code>prefix2</code> 表示第二个前缀键,意味着可以使用 <code>C-b</code> 或 <code>C-s</code> 作为前缀键来执行 tmux 的命令。</p>
<h3>按键延迟</h3>
<pre><code class=“language-Bash”># prefix 延迟时间,按下 Ctrl-b 之后立即响应
set -s escape-time 10
组合按键时间间隔
set -sg repeat-time 600
</code></pre>
<p>默认情况下,tmux 等待 <code>Escape</code> 键的时间为 500 毫秒。在一些情况下,将此时间设置为 10 毫秒可以加快命令序列的处理速度,使 tmux 更加响应迅速。</p>
<p>按键时间间隔,默认时间也是 500 毫秒。将其增加到 600 毫秒可以让用户在快速按两次前缀键时有更多的时间间隔。</p>
<h3><strong>历史记录限制</strong></h3>
<p>将历史记录限制增加到 5000 行,以便在 tmux 中保存更多的命令行输出历史。</p>
<pre><code class=“language-Bash”>set -g history-limit 5000</code></pre>
<h3>tmux 的显示设置</h3>
<pre><code class=“language-Bash”># 将窗口编号从 1 开始(默认是从 0 开始)
set -g base-index 1
将面板编号与窗口编号一致,也从 1 开始(默认是从 0 开始)
setw -g pane-base-index 1
自动重命名窗口
setw -g automatic-rename on
关闭窗口时重新编号剩余的窗口
set -g renumber-windows on
关闭最后一个窗口,tmux 会话自动退出
set -sg exit-empty on
设置终端标题为当前窗口名称
set -g set-titles on
设置 pane 显示时间
set -g display-panes-time 2000
设置消息显示时间
set -g display-time 2000
状态栏刷新间隔
set -g status-interval 10
清屏和历史记录
bind -n C-l send-keys C-l ; run 'sleep 0.2' ; clear-history
禁用活动监控
set -g monitor-activity off
禁用视觉提示
set -g visual-activity off
禁用铃声提示
setw -g monitor-bell off
允许鼠标控制
set -g mouse on
</code></pre>
<h3>会话相关</h3>
<pre><code class=“language-Bash”>unbind [
unbind ]
创建会话
bind C-c new-session
查看会话
bind ] choose-session
打开会话和窗口树选择菜单并启用缩放
bind W choose-tree -Z
快速关闭会话
unbind C-x
bind-key -n C-x switch-client -T kill-session-mode
bind-key -T kill-session-mode 1 kill-session -t 1
bind-key -T kill-session-mode 2 kill-session -t 2
bind-key -T kill-session-mode 3 kill-session -t 3
bind-key -T kill-session-mode 4 kill-session -t 4
bind-key -T kill-session-mode 5 kill-session -t 5
bind-key -T kill-session-mode 6 kill-session -t 6
bind-key -T kill-session-mode 7 kill-session -t 7
bind-key -T kill-session-mode 8 kill-session -t 8
bind-key -T kill-session-mode 9 kill-session -t 9
</code></pre>
<p><code>bind BTab</code>:绑定 <code>Shift-Tab</code> 键(在 tmux 中,<code>B</code> 表示 <code>Shift</code> 键)。<code>switch-client -l</code>:切换到上一个会话。</p>
<p>通过按 <code>Shift-Tab</code> 键,用户可以快速切换到上一个使用的 tmux 会话。</p>
<h3>窗口导航</h3>
<pre><code class=“language-Bash”># 切换到上一个窗口
bind -r C-h previous-window
切换到下一个窗口
bind -r C-l next-window</code></pre>
<p>然后定义了一组用于快速选择窗口的按键,由于想简化下按键次数,把数字1~9设置在多组命令上执行,这里设置一组专用于 <code>select-window</code> 的前缀键</p>
<pre><code class=“language-Bash”>unbind C-g
bind-key -n C-g switch-client -T select-window-mode</code></pre>
<p>解绑 <code>C-g</code>,然后绑定 <code>C-g</code> 来激活 <code>select-window-mode</code> 键表</p>
<p>创建并绑定 <code>select-window-mode</code> 键表并绑定相应的按键命令</p>
<details>
<summary> select-window 默认设置方法</summary>
<pre class=“language-Bash line-numbers”><code class=“language-Bash”>
快速选择窗口
bind 1 select-window -t 1
bind 2 select-window -t 2
bind 3 select-window -t 3
bind 4 select-window -t 4
bind 5 select-window -t 5
bind 6 select-window -t 6
bind 7 select-window -t 7
bind 8 select-window -t 8
bind 9 select-window -t 9
</code></pre>
</details>
<pre><code class=“language-Bash”># 快速选择窗口
bind-key -T select-window-mode 1 select-window -t 1
bind-key -T select-window-mode 2 select-window -t 2
bind-key -T select-window-mode 3 select-window -t 3
bind-key -T select-window-mode 4 select-window -t 4
bind-key -T select-window-mode 5 select-window -t 5
bind-key -T select-window-mode 6 select-window -t 6
bind-key -T select-window-mode 7 select-window -t 7
bind-key -T select-window-mode 8 select-window -t 8
bind-key -T select-window-mode 9 select-window -t 9</code></pre>
<p>同上,这里设置一组专属于 <code>join-pane</code> 的前缀键,用于快速将单前窗格加入窗口的按键</p>
<pre><code class=“language-Bash”># 将当前窗格加入指定窗口
unbind C-a
bind-key -n C-a switch-client -T join-pane-mode</code></pre>
<details>
<summary>join-pane 默认设置方法</summary>
<pre class=“language-Bash line-numbers”><code class=“language-Bash”>
将当前窗格加入指定窗口
bind ‘!’ join-pane -t :1
bind ‘@’ join-pane -t :2
bind ‘#’ join-pane -t :3
bind ‘$’ join-pane -t :4
bind ‘%’ join-pane -t :5
bind ‘^’ join-pane -t :6
bind ‘&’ join-pane -t :7
bind ‘*’ join-pane -t :8
bind ‘(’ join-pane -t :9
</code></pre>
</details>
<pre><code class=“language-Bash”>bind-key -T join-pane-mode 1 join-pane -t :1
bind-key -T join-pane-mode 2 join-pane -t :2
bind-key -T join-pane-mode 3 join-pane -t :3
bind-key -T join-pane-mode 4 join-pane -t :4
bind-key -T join-pane-mode 5 join-pane -t :5
bind-key -T join-pane-mode 6 join-pane -t :6
bind-key -T join-pane-mode 7 join-pane -t :7
bind-key -T join-pane-mode 8 join-pane -t :8
bind-key -T join-pane-mode 9 join-pane -t :9
</code></pre>
<p>通过按 <code>Ctrl-h</code> 键,可以快速切换到上一个窗口。</p>
<p>通过按 <code>Ctrl-l</code> 键,可以快速切换到下一个窗口。</p>
<p>通过 <code>Ctrl-g</code> + 数字键快速切换到指定窗口。例如,按 <code>Ctrl-g</code> + <code>1</code> 切换到窗口 1。</p>
<p>通过 <code>Ctrl-a</code> + 数字键将当前窗格加入到指定窗口。例如,按 <code>Ctrl-a</code> + <code>1</code> 将当前窗格加入到窗口 1。</p>
<p>和上面<code>join-pane</code> 差不多的功能,也是将窗格移动到某个窗口,但这个还可以跨会话移动</p>
<pre><code class=“language-Bash”># 打开会话和窗口树选择窗格并垂直移动面板
bind S choose-tree 'move-pane -v -s "%%"'
打开会话和窗口树选择窗格并水平移动面板
bind V choose-tree 'move-pane -h -s "%%"'</code></pre>
<p><code>choose-tree</code>:打开会话和窗口树选择菜单。</p>
<p><code>'move-pane -v -s "%%"'</code>:选择后执行 <code>move-pane</code> 命令,将选中的窗口垂直移动到当前面板。<code>%%</code> 是一个 tmux 内部的占位符,用于表示选择的目标。</p>
<p><code>-v</code>:将选中的窗格垂直移动到当前面板。</p>
<p><code>-h</code>:将选中的窗格水平移动到当前面板。</p>
<h3>窗格导航</h3>
<pre><code class=“language-Bash”># 垂直拆分,新的窗格位于当前窗格之上。
bind / split-window -vb
垂直拆分,新的窗格位于当前窗格之下。
bind ? split-window -v
水平拆分,新的窗格位于当前窗格之左
bind < split-window -hb
水平拆分,新的窗格位于当前窗格之右
bind > split-window -h</code></pre>
<p>通过 > 和 < 键快速交换窗口位置,从而方便地调整窗口布局。</p>
<pre><code class=“language-Bash”># 选择左侧的窗格
bind -r h select-pane -L
选择下方的窗格
bind -r j select-pane -D
选择上方的窗格
bind -r k select-pane -U
选择右侧的窗格
bind -r l select-pane -R
快速选择窗格
bind 1 select-pane -t:.1
bind 2 select-pane -t:.2
bind 3 select-pane -t:.3
bind 4 select-pane -t:.4
bind 5 select-pane -t:.5
bind 6 select-pane -t:.6
bind 7 select-pane -t:.7
bind 8 select-pane -t:.8
bind 9 select-pane -t:.9
bind 0 select-pane -t:.10
</code></pre>
<p>这些快捷键绑定将 <code>h</code>、<code>j</code>、<code>k</code>、<code>l</code> 键用作窗格导航键,类似于 Vim 的导航方式,就可以更方便地在不同窗格之间移动。</p>
<p>通过 <code><prefix></code> + 数字键快速切换到指定窗格。例如,按 <code>Ctrl-b</code> + <code>1</code> 或者<code>Ctrl-s</code> + <code>1</code>切换到窗格 1。</p>
<pre><code class=“language-Bash”># 将当前窗格与下方的窗格交换位置
bind ')' swap-pane -D
将当前窗格与上方的窗格交换位置
bind '(' swap-pane -U
切换到下一个窗格布局
bind -n C-u next-layout
创建新窗口,路径为当前 pane 的路径
bind -n C-p new-window -c "#{pane_current_path}"
将当前窗格分离成新窗口
bind -n C-o break-pane
关闭当前窗格
bind -n C-q kill-pane
</code></pre>
<p>通过 <code>(</code> 和 <code>)</code> 键快速交换上下窗格的位置,从而方便地调整窗格布局。</p>
<p><code>next-layout</code> tmux默认提供了一些布局样式,使用它可以快速进行排版。</p>
<h3>调整窗格大小</h3>
<pre><code class=“language-Bash”># 将窗格向左调整 2 个单元格
bind -r H resize-pane -L 2
将窗格向下调整 2 个单元格
bind -r J resize-pane -D 2
将窗格向上调整 2 个单元格
bind -r K resize-pane -U 2
将窗格向右调整 2 个单元格
bind -r L resize-pane -R 2
最大化当前窗格
bind f resize-pane -Z
</code></pre>
<p>通过 <code>H</code>、<code>J</code>、<code>K</code>、<code>L</code> 键精确调整窗格大小,可以更灵活的调整屏幕上窗格的布局。</p>
<p><code>f</code> 键快速最大化当前窗格,便于查看和操作,再次按下可以恢复原始大小。</p>
<p>可视模式</p>
<p>在 <code>tmux</code> 中使用 Vi 风格的键绑定进行复制操作,自定义复制模式(Vi 模式)的键绑定</p>
<pre><code class=“language-Bash”># 可视模式
bind -n C-v copy-mode
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi C-v send-keys -X rectangle-toggle
bind -T copy-mode-vi h send-keys -X cursor-left
bind -T copy-mode-vi l send-keys -X cursor-right
bind -T copy-mode-vi k send-keys -X cursor-up
bind -T copy-mode-vi j send-keys -X cursor-down
bind -T copy-mode-vi i send-keys -X next-word-end
bind -T copy-mode-vi K send-keys -N 5 -X cursor-up
bind -T copy-mode-vi J send-keys -N 5 -X cursor-down
bind -T copy-mode-vi H send-keys -X start-of-line
bind -T copy-mode-vi L send-keys -X end-of-line
bind -T copy-mode-vi Y send-keys -X copy-end-of-line
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel
bind -T copy-mode-vi = send-keys -X search-again
bind -T copy-mode-vi = send-keys -X search-reverse
</code></pre>
<p><code>bind -n C-v copy-mode</code> 绑定 <code>Ctrl-v</code> 键进入复制模式(copy-mode),从而可以选择和复制屏幕上的文本内容。</p>
<p>在复制模式下,下面的快捷键用于选择、复制和取消复制等操作:</p>
<p><code>begin-selection</code>:开始选择文本</p>
<p><code>rectangle-toggle</code>:切换矩形选择模式</p>
<p><code>cursor-left</code> 、<code>cursor-right</code> :向某个方向移动</p>
<p><code>next-word-end</code>:移动到下一个单词末尾</p>
<p><code>start-of-line</code> 、<code>end-of-line</code> :移动到行首和行尾</p>
<p><code>copy-end-of-line</code> : 复制到行末</p>
<p><code>copy-selection-and-cancel</code> :复制选择并退出选择模式</p>
<p><code>search-again</code>:重复上次搜索</p>
<h2>其他快速变更指令</h2>
<h3>切换状态栏的显示状态</h3>
<pre><code class=“language-Bash”># – 切换状态栏的显示状态
bind s if-shell '[[ $(tmux show -g status | cut -d\ -f2) == "on" ]]'
'set -g status off'
'set -g status on'</code></pre>
<p>通过 <code>s</code> 键来实现在状态栏的显示和隐藏之间切换。</p>
<p><code>if-shell '[[ $(tmux show -g status | cut -d\ -f2) == "on" ]]'</code> 执行一个条件判断的 shell 脚本</p>
<p><code>tmux show -g status</code>:命令用于显示全局的 <code>status</code>(状态栏)配置</p>
<p><code>cut -d\ -f2</code>:使用 <code>cut</code> 命令提取第二个字段(即状态 "on" 或 "off")</p>
<p><code>[[ … == "on" ]]</code>:判断提取的状态是否为 "on"</p>
<p><code>set -g status off</code> :状态栏状态为 "on",则关闭状态栏</p>
<p><code>set -g status on</code>:如果状态栏状态为 "off",则开启状态栏</p>
<h3>控制多窗格同步输入功能</h3>
<pre><code class=“language-Bash”># – 控制多窗格同步输入功能
bind C-g if-shell '[[ $(tmux showw synchronize-panes | cut -d\ -f2) == "on" ]]'
'setw synchronize-panes off; set -g pane-border-style fg=magenta'
'setw synchronize-panes on; set -g pane-border-style fg=red'</code></pre>
<p>通过 <code>Ctrl-g</code> 键来实现在一个窗口下控制多窗格的同步输入功能开关,同时根据同步状态更改面板边框的颜色。</p>
<p><code>tmux showw synchronize-panes</code>:命令用于显示当前窗格的 <code>synchronize-panes</code> 状态。</p>
<p><code>cut -d\ -f2</code>:使用 <code>cut</code> 命令提取第二个字段(即状态 "on" 或 "off")。</p>
<p><code>[[ … == "on" ]]</code>:判断提取的状态是否为 "on"。</p>
<p><code>setw synchronize-panes off; set -g pane-border-style fg=magenta</code>:</p>
<ul>
<li>如果 <code>synchronize-panes</code> 状态为 "on",则将其关闭,并将面板边框颜色设置为 <code>magenta</code>。</li>
<li><code>setw synchronize-panes off</code>:关闭同步输入。</li>
<li><code>set -g pane-border-style fg=magenta</code>:将面板边框颜色设置为紫红色。</li>
</ul>
<p><code>setw synchronize-panes on; set -g pane-border-style fg=red</code>:</p>
<ul>
<li>如果 <code>synchronize-panes</code> 状态为 "off",则将其开启,并将面板边框颜色设置为 <code>red</code>。</li>
<li><code>setw synchronize-panes on</code>:开启同步输入。</li>
<li><code>set -g pane-border-style fg=red</code>:将面板边框颜色设置为红色。</li>
</ul>
<h3>快速重新加载配置文件</h3>
<pre><code class=“language-Bash”>bind r run '"
<p>通过 <code>r</code> 键快速重新加载 tmux 配置文件并显示提示信息,达到快速应用配置更改。</p>
<ul>
<li>这行配置为 <code>r</code> 键绑定了重新加载 tmux 配置文件的功能。</li>
<li><code>run '"
<li><code>display "#{TMUX_CONF} sourced"</code>:在状态栏显示配置文件已重新加载的信息。</li>
</ul>
<h2>安装tmux插件管理器</h2>
<p>先克隆 <a href=“https://github.com/tmux-plugins/tpm”>tpm</a> 仓库到本地环境</p>
<pre><code class=“language-Bash”>git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm</code></pre>
<p>将以下内容放在 <code>~/.tmux.conf </code> 文件里启用插件</p>
<pre><code class=“language-Bash”># List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
Other examples:
set -g @plugin 'github_username/plugin_name'
set -g @plugin 'github_username/plugin_name#branch'
set -g @plugin 'git@github.com:user/plugin'
set -g @plugin 'git@bitbucket.com:user/plugin'
Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'</code></pre>
<p>然后重载配置使其生效</p>
<pre><code class=“language-Bash”>:source ~/.tmux.conf
如果 tmux 已在运行,则在终端中键入此内容
tmux source ~/.tmux.conf
</code></pre>
<h3>插件</h3>
<h3>主题</h3>
<p><a href=“https://github.com/catppuccin/tmux”>catppuccin/tmux</a> 主题</p>
<pre><code class=“language-Bash”># catppuccin theme
set -g @plugin "catppuccin/tmux"
set -g @catppuccin_flavour "mocha"</code></pre>
<h2>常用的tmux操作按键(快捷键)</h2>
<p>以下是一些个人定义的tmux操作按键(快捷键)</p>
<p>个人配置使用 <code>C-s</code> 作为二级前缀,同时保留 <code>C-s</code> 作为默认前缀。</p>
<h3>按键绑定说明</h3>
<p><code><prefix></code> 表示您必须按 <code>Ctrl</code> + <code>d</code> 或 <code>Ctrl </code>+ <code>s</code>。<br />
<code><prefix> c</code> 表示必须按 <code>Ctrl</code> + <code>d</code> 或 <code>Ctrl</code> + <code>s</code>,然后按 <code>c</code><br />
<code><prefix> C-c</code> 表示必须按 <code>Ctrl </code>+ <code>d </code>或 <code>Ctrl</code> + <code>s</code>,然后按 <code>Ctrl</code> + <code>c</code></p>
<h3>个人配置使用以下绑定</h3>
<h4>快捷操作</h4>
<p><code><prefix> d</code> 分离当前会话到后台运行</p>
<p><code><prefix> r</code> 重新加载配置</p>
<p><code><prefix> C-g</code> 控制多窗格的同步输入功能开关</p>
<p><code><prefix> s</code> 显示隐藏底部状态栏</p>
<p><code>C-l</code> 清除屏幕和 tmux 历史记录</p>
<h4>会话相关</h4>
<p><code><prefix> </code> </p>
<p><code><prefix> C-c</code> 当前窗口下快速创建新的会话</p>
<p><code><prefix> ]</code> 查看已创建的会话</p>
<p><code><prefix> W</code> 以树状图样式查看已创建的会话及其窗口窗格</p>
<p><code>C-x</code> + <code>1</code> 快速关闭第一个会话(1~9 可以依顺序快速关闭对应的会话)</p>
<h4>窗口相关</h4>
<p><code><prefix> C-h</code> 切换当前会话里的上一个窗口</p>
<p><code><prefix> C-l</code> 切换当前会话里的下一个窗口</p>
<p><code>C-g</code> + <code>数字键</code> 将快速切换到当前会话里的其他指定窗口,例如按 <code>Ctrl-g</code> + <code>1</code> 将快速切换到当前会话里的第一个窗口(1~9 可以依顺序快速切换对应的窗口)</p>
<p><code>C-a</code> + <code>数字键</code> 将当前窗格加入到当前会话里的其他指定窗口,例如按 <code>Ctrl-a</code> + <code>1</code> 将当前窗格加入到窗口 1。(1~9 可以依顺序将当前窗格加入到其他对应的窗口)</p>
<p><code><prefix> S</code> 以树状形式打开所有会话和窗口,并将选中想要移动的窗格垂直移动到当前(所选择的)会话窗口下(跨会话移动)</p>
<p><code><prefix> V</code> 以树状形式打开所有会话和窗口,并将选中想要移动的窗格垂水平动到当前(所选择的)会话窗口下(跨会话移动)</p>
<h4>窗格相关</h4>
<p><code><prefix> <</code>水平拆分,新的窗格位于当前窗格之左</p>
<p><code><prefix> ></code>水平拆分,新的窗格位于当前窗格之右</p>
<p><code><prefix> ?</code>垂直拆分,新的窗格位于当前窗格之下。</p>
<p><code><prefix> /</code> 垂直拆分,新的窗格位于当前窗格之上。</p>
<p><code><prefix> h</code>, <code><prefix> j</code>, <code><prefix> k</code> , <code><prefix> l</code> 焦点窗格上下左右移动选择</p>
<p><code><prefix></code> + <code>数字键</code> 将快速将焦点切换到当前窗口下的其他窗格里,例如按 <code><prefix></code> + <code>1</code> 将快速将焦点切换到第一个窗格下(1~9 可以依顺序快速切换对应的窗格)</p>
<p><code><prefix> (</code> , <code><prefix> )</code> 交换上下窗格的位置</p>
<p><code>C-o</code>将当前窗格分离成新窗口</p>
<p><code>C-q</code>关闭当前窗格</p>
<p><code>C-u</code>切换到下一个窗格布局</p>
<p><code>C-p</code>创建新窗口,路径为当前 pane 的路径</p>
<p><code><prefix> H</code>, <code><prefix> J</code>, <code><prefix> K</code>, <code><prefix> L</code> 调整窗口大小</p>
<p><code><prefix> f</code> 当前窗格最大化,再次按下恢复 </p>
<h4>可视模式,复制相关</h4>
<p><code>C-v</code>进入复制模式</p>
<p><code>v</code> 开始选择文本</p>
<p><code>Ctrl-v</code> 切换矩形选择模式</p>
<p><code>h</code>向左移动光标。</p>
<p><code>l</code>向右移动光标。</p>
<p><code>k</code>向上移动光标。</p>
<p><code>j</code>向下移动光标。</p>
<p><code>K</code>向上移动光标 5 行</p>
<p><code>J</code>向下移动光标 5 行</p>
<p><code>H</code>将光标移动到行首</p>
<p><code>L</code>将光标移动到行尾</p>
<p><code>i</code>将光标移动到下一个单词的结尾</p>
<p><code>Y</code>复制从光标当前位置到行尾的内容</p>
<p><code>y</code>复制选择的内容并取消选择模式</p>
<p><code>=</code>重复上一次的搜索</p>
<h2>会话管理</h2>
<h3><strong>创建新的 tmux 会话</strong></h3>
<pre><code class=“language-Bash”>tmux new -s session_name</code></pre>
<p><code>tmux new-session -s mysession</code> 创建一个名为 <code>mysession</code> 的新会话</p>
<h3><strong>启动一个新的 tmux 会话并使其在后台运行</strong></h3>
<pre><code class=“language-Bash”>tmux new-session -d -s session_name</code></pre>
<h3><strong>列出当前正在运行的所有所有 tmux 会话</strong></h3>
<pre><code class=“language-Bash”>tmux list-sessions
tmux ls
</code></pre>
<pre><code class=“language-Bash”>chixm:~ $ tmux list-sessions
3: 8 windows (created Sun Apr 28 15:39:55 2024)
7: 2 windows (created Mon Apr 29 10:42:05 2024)</code></pre>
<p>这将列出所有后台运行的 tmux 会话及其名称。</p>
<h3><strong>重命名会话</strong></h3>
<pre><code class=“language-Bash”>tmux rename-session -t newnam chixm</code></pre>
<p>将编号为 <code>3</code> 的会话重命名为 <code>chixm</code>。</p>
<pre><code class=“language-Bash”>chixm:~ $ tmux list-sessions
7: 2 windows (created Mon Apr 29 10:42:05 2024)
chixm: 8 windows (created Sun Apr 28 15:39:55 2024)
</code></pre>
<h3>重新<strong>连接到会话</strong></h3>
<pre><code class=“language-Bash”>tmux attach -t session_name
tmux attach-session -t session_name
</code></pre>
<p>要重新连接到一个已经在后台运行的 tmux 会话,可以使用以下命令:</p>
<p><code>-t session_name</code> 用于指定要连接的会话名称。</p>
<pre><code class=“language-Bash”>chixm:~ $ tmux list-sessions
7: 2 windows (created Mon Apr 29 10:42:05 2024)
chixm: 8 windows (created Sun Apr 28 15:39:55 2024)
进入到编号为 3 的会话
chixm:~ $ tmux attach-session -t 7
</code></pre>
<h3><strong>杀死结束会话</strong></h3>
<pre><code class=“language-Bash”>tmux kill-session -t <session-name-or-id>
结束编号为 3 的会话
tmux kill-session -t 3
结束名为 chixm 的会话
tmux kill-session -t chixm
结束所有 tmux 会话
tmux kill-server
使用 xargs 一次性杀死多个会话
tmux list-sessions -F '#S' | xargs -I {} tmux kill-session -t {}
</code></pre>
<pre><code class=“language-Bash”># 结束当前会话
tmux kill-session</code></pre>
<p>在当前所在的会话内部执行,会话将被终止。</p>
<h3><strong>shell环境下重新加载 tmux 配置文件</strong></h3>
<pre><code class=“language-Bash”>tmux source ~/.tmux.conf</code></pre>
<h2>其他</h2>
<p>开箱即用的配置</p>
<p><a href=“https://github.com/gpakosz/.tmux”>https://github.com/gpakosz/.tmux</a></p>
