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

如何在tmux会话中从vi编辑器复制多页长文本内容

问题根因

在tmux中打开vi这类全屏终端程序后,tmux的历史回滚缓冲区只会保存vi当前视口展示的内容,文件剩余内容存储在vi的内部缓存中,tmux无法直接读取,所以复制模式下没法向下滚动选中更多内容。

可行解决方案

方案1:vi内直接复制(推荐,操作最快)

如果远程主机开启了X11转发,或者你只是要把内容粘贴到远程端的其他位置:

  • 要复制全文件内容:在vi普通模式下输入:%y,内容就会复制到vi的默认缓冲区,需要粘贴时按p即可;如果要复制到系统剪贴板,改成输入:%y+
  • 要复制指定范围内容:按v进入vi的可视模式,用方向键选中所有需要的内容后,按y复制到vi缓冲区,按"+y复制到系统剪贴板

方案2:输出文件内容到终端后用tmux复制

如果没开X11转发,需要把内容复制到本地:

  • 先按:q退出vi,在远程shell中执行cat filename.java,把文件所有内容打印到终端
  • 按Ctrl+b [进入tmux复制模式,此时可以用PageUp/PageDown上下翻页找到需要复制的起始位置
  • 按Ctrl+空格开始选中,选中过程中可以用Ctrl+d向下翻半页、Ctrl+u向上翻半页,不用局限于方向键逐行移动
  • 选完所有内容后按Enter,内容就会存入tmux的复制缓冲区,按Ctrl+b ]即可粘贴

方案3:直接拉取文件到本地

如果需要复制的是整个文件,不用复制粘贴,直接在本地终端执行scp user@host:/path/to/filename.java ./,直接把文件传输到本地,效率更高。

内容的提问来源于stack exchange,提问作者uddi baba

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:15:06