如何在 tmux 会话中从 VI 复制多个页面

How to copy multiple pages from VI inside tmux session

我正在尝试复制大约 350 行的长文本。但是我只能 select 当前在终端中可见的 15-20 行,一旦我在 tmux 中 select 复制模式,我就无法向下滚动。这是步骤

  1. tmux 附加
  2. ssh 用户@主机
  3. vi filename.java
  4. Ctrl+b 和 [
  5. Ctrl+space然后up/down左箭头右箭头使select离子。 在那之后,一旦我到达结尾 1,就无法进一步滚动到 select 文本的其余部分。

使用cat命令。

示例:

cat example.cfg

使用该命令的输出,您可以使用鼠标 select 所有您想要的内容,而不是每 30 行执行一次。

然后您可以连接到您的其他服务器并将其粘贴到新文件中。

假设您要复制到 X 剪贴板...

做一个长文件。

$ ssh try 'seq 1 2000 >  /tmp/long-file'

编辑它。

$ ssh -tY try vim /tmp/long-file

从内部 vim,将文件送入 X 剪贴板。

$ :!xclip < %

在不同的控制台上:

$ xclip -o

如果您在 xclip -o 之前断开连接,命令将失败并显示:

Error: target STRING not available

此解决方案依赖于 X 转发。如果你不能这样做,那就这样做:

ssh try cat /tmp/long-file | xclip -i

如果你在 mac OS,我相信有类似的粘贴命令。