在终端中 - 在新 vim 缓冲区中显示输出

In terminal - show ouput in new vim buffer

我正在尝试获得我在视频中看到的功能。本质上,这个人在终端中(我相信在重要的情况下使用 tmux)并使用快捷方式将 stdout 转换为 vim 缓冲区,并且可以轻松地导航和 select/copy 文本。这是怎么做到的?

tabnew 命令用于打开新标签页。

您可以使用管道符号,然后使用其他命令。这些命令的输出将被重定向到新缓冲区。

示例:

         :tabnew | r! pwd

pwd 将打印当前目录,r 将读取它。 Tabnew 会将输出放入新缓冲区。 您可以同时使用 shell 命令和 vim 命令。

同样,可以使用enew 命令代替tabnew 来创建新缓冲区。 看这里: https://superuser.com/questions/157987/pipe-output-of-shell-command-into-a-new-buffer-in-vim

How to redirect stdout output to a new Vim tab?

How do I dump output of an external command to a new buffer in Vim?

您可以运行 :read !<cmd>执行shell中的命令并将输出捕获到当前缓冲区。

例如 - :read !date

如果您想要在新缓冲区中输出,请使用 :new

所以两者合并,:new | read !date

在readline中,在默认的emacs模式下,您可以按<C-x><C-e>编辑$EDITOR中的当前命令行。

如果你使用vi模式,你可以按<Esc>v来做同样的事情。

你说的是tmux的复制模式

默认情况下,您可以通过 ctrlb[ 进入复制模式 If C-b 是你的前缀。否则使用前缀 + [

您可以使用 hjkl[ 的动作=33=]w^,用?/[=33=搜索]等

一些相关的details