乐于分享
好东西不私藏

终端分身术:Tmux 常用指令与插件方案

终端分身术:Tmux 常用指令与插件方案

远程管理服务器时最怕网络波动。刚刚跑了一个耗时两小时的脚本,网络闪断了一下,连接就断开了。再连上去时发现之前的进程也跟着挂了,只能重头再来。或者为了同时看日志、写代码、监控资源,开了五六个终端窗口,切来切去非常混乱。

使用 Tmux 可以解决这些问题。它允许在服务器端运行一个后台服务,把所有终端窗口都“寄存”在里面。即使断网,服务器端的进程依然在跑。下次连上去,找回之前的会话,屏幕上的内容和断开前一模一样。

基础指令

Tmux 的核心概念有三个。会话是最大的单位,通常对应一个具体的任务或项目。窗口类似于浏览器的标签页,占满整个屏幕。面板是将一个窗口切分成多个小块,可以同时显示不同内容。

Tmux 基础分屏效果

启动一个新的具名会话。

tmux new -s my-project

如果不指定名字,过段时间就会忘记这个会话是做什么的,所以建议养成命名的习惯。

临时离开当前会话,让它在后台运行。快捷键是 Ctrl+b 然后按 d

查看当前有哪些后台会话。

tmux ls

重新连接到指定的会话。

tmux a -t my-project

在会话内部,所有快捷键都需要先按前缀键。默认的前缀键是 Ctrl+bCtrl+b后按%可以把当前面板左右切分。Ctrl+b后按可以把当前面板上下切分。Ctrl+b后按c可以创建一个新窗口。Ctrl+b后按np 可以切换窗口。

进阶配置

默认的快捷键 Ctrl+b 按起来非常别扭,手指跨度太大。只要打算长期使用,第一件事就是修改配置文件。配置文件通常位于用户主目录下的 .tmux.conf 文件。如果文件不存在,直接新建一个。

这里提供一份生产环境可用的配置方案。建议直接复制进配置文件。

# 修改前缀键为 Ctrl-aset -g prefix C-aunbind C-bbind C-a send-prefix# 消除 Vim 模式下的 ESC 延迟set -s escape-time 0# 开启鼠标支持set -g mouse on# 窗口和面板编号从 1 开始set -g base-index 1setw -g pane-base-index 1# 使用 vi 键位模式setw -g mode-keys vi

把前缀键改成 Ctrl+a 主要是为了方便左手操作。开启鼠标支持后,可以直接用鼠标拖动面板边缘来调整大小,点击面板进行切换。把编号从 1 开始是因为键盘上 0 和 1 距离太远,按起来不方便。消除延迟是为了配合 Vim 使用,否则退出插入模式时会有明显的卡顿。

配置修改完成后,需要让它生效。可以在终端执行命令。

tmux source ~/.tmux.conf

或者在 Tmux 会话内按 Ctrl+a 然后输入冒号 : 进入命令模式,输入 source-file ~/.tmux.conf

插件管理

Tmux 拥有丰富的插件生态,可以通过 TPM 进行管理。这需要先安装 TPM 管理器。

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

在 .tmux.conf 文件的最底部添加以下内容。必须放在最底部,否则可能导致插件无法加载。

# 插件列表set -g @plugin 'tmux-plugins/tpm'set -g @plugin 'tmux-plugins/tmux-sensible'set -g @plugin 'christoomey/vim-tmux-navigator'set -g @plugin 'tmux-plugins/tmux-resurrect'set -g @plugin 'catppuccin/tmux'# 主题配置set -g @catppuccin_flavor 'mocha'set -g @catppuccin_window_tabs_enabled 'on'# 初始化 TPMrun '~/.tmux/plugins/tpm/tpm'

tmux-resurrect 是一个非常重要的插件。它可以手动保存当前的会话状态,包括窗口布局和运行的程序。即使电脑重启,也能由它恢复之前的状态。默认的保存快捷键是 Ctrl+a 后按 Ctrl+s。恢复快捷键是 Ctrl+a 后按 Ctrl+r

vim-tmux-navigator 可以让光标在 Vim 窗口和 Tmux 面板之间无缝切换,统一使用 Ctrl+h/j/k/l 导航,不再区分当前是在 Vim 里还是在 Tmux 里。

配置好插件列表后,进入 Tmux 会话,按 Ctrl+a 然后按大写的 I 键安装插件。

Tmux 进阶主题与状态栏

避坑与总结

新手容易遇到的一个问题是嵌套使用。如果在 Tmux 会话里 SSH 到另一台服务器,然后在那台服务器上又打开了 Tmux,快捷键会冲突。建议只在本地或者只在作为跳板机的服务器上运行 Tmux。如果必须嵌套,按两下前缀键可以将指令发送给内层的 Tmux。

如果觉得这份配置有用,或者有自己独特的配置技巧,欢迎在评论区分享。

下面是常用指令的速查表。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 终端分身术:Tmux 常用指令与插件方案

评论 抢沙发

6 + 6 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮