利用tmux和nvim的方式远程开发

把 tmux、nvim、SSH 和命令面板组合成一个可恢复的终端远程开发工作流。

#type / synthesis #status / evergreen #tech / dev #resource / tmux

[!info] related notes

利用tmux和nvim的方式远程开发

为什么要把这几个工具一起理解

  • SSH 负责把你接入远端机器
  • tmux 负责在远端保留会话与进程
  • nvim 负责在终端里直接编辑代码
  • 额外窗格可以放日志、服务、Git 命令或 AI 助手

这几个工具单独看都不复杂,但组合起来会形成一个很稳定的“断线可恢复、键盘优先、低带宽也能工作”的开发环境。

最小工作流

  1. ssh 连接到远端机器或 WSL 环境
  2. 进入 tmux:
    • 没有会话就 tmux
    • 已有会话就 tmux attach
  3. 把左侧主窗格给 nvim
  4. 右侧或下方窗格分别给服务、日志、Git 命令、AI 助手
  5. 离开时 detach,下次再接回原会话

为什么 tmux 是核心

如果只有 SSH 和编辑器,那么断线、关终端、切设备时,当前现场很容易丢。

tmux 提供的是中间那层“工作空间管理”:

  • 编辑器和服务都留在服务器上
  • 本地终端只是一个入口
  • 网络中断不会直接结束你的工作现场

这也是它适合远程开发的原因。

布局恢复有三条路

  • 只要当前 tmux server 不退出,直接 attach 回去即可
  • 想恢复上一次现场,用 tmux 中保持布局 里的 tmux-resurrect
  • 想固定生成项目布局,用脚本或 tmuxinator

适合的场景

  • 远程 Linux 服务器开发
  • WSL 内长期运行服务
  • 网络不太稳定,但又希望工作环境不中断
  • 喜欢键盘优先、TUI 工具链的开发方式

边界

  • 如果你更依赖 GUI 调试器、图形化文件树、IDE 插件生态,VS Code Remote 这类方案通常更直接
  • 如果只是偶尔改一个远端文件,没有必要把工作流复杂化到 tmux + nvim 全套
创建于 2026/2/26 更新于 2026/5/27