You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在tmux中实现类似Vim scrollbind的双窗格同步滚动?

在tmux中实现类似Vim scrollbind的双窗格同步滚动

刚好我之前也折腾过这个需求,tmux本身就提供了对应的功能,不过和Vim的scrollbind有一点区别,下面分两种场景给你讲具体实现方式:

一、tmux原生全操作同步

这种方式会让tmux的多个窗格同步所有键盘操作——包括滚动、输入命令等,步骤非常简单:

  1. 创建分窗:先打开tmux会话,用Ctrl+b %创建垂直分窗(或者Ctrl+b "创建水平分窗),然后在两个窗格中打开你需要同步的文件(比如都打开LICENSE)。
  2. 启用同步滚动:
    • 按下Ctrl+b :唤起tmux的命令输入框
    • 输入命令 setw synchronize-panes on 并回车,此时两个窗格就会同步所有操作了——你在一个窗格按上下键滚动,另一个会跟着同步滚动;甚至输入命令也会同步到另一个窗格。
  3. 关闭同步:同样按下Ctrl+b :,输入 setw synchronize-panes off 即可取消同步。

优化:绑定快捷键一键切换

每次输命令太麻烦,你可以给这个功能绑定一个快捷键,比如把Ctrl+b s设为同步开关:

  • 编辑你的tmux配置文件 ~/.tmux.conf,添加一行:
    bind-key s setw synchronize-panes toggle
    
  • 保存后,执行 tmux source ~/.tmux.conf 重新加载配置,之后按Ctrl+b s就能一键切换同步状态,非常方便。

二、仅同步滚动(结合Vim scrollbind)

如果你只想同步滚动,不想同步其他输入操作(比如在一个窗格里编辑内容,另一个不跟着变),可以结合Vim的scrollbind在tmux的每个窗格中设置:

  • 在tmux的两个窗格中分别打开Vim和目标文件
  • 在每个Vim实例中执行 :set scrollbind,之后就能像纯Vim环境里那样只同步滚动,互不干扰编辑操作。

这种方式更贴近你熟悉的Vimscrollbind体验,适合需要独立编辑但同步查看的场景。

内容的提问来源于stack exchange,提问作者LF-DevJourney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 18:22:51