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

时间:2016-06-07 04:59:01

标签: vim tmux

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

4 个答案:

答案 0 :(得分:1)

您正在谈论tmux的复制模式

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

您可以使用 h j k l w ^ ,用搜索? / 等。

一些相关的details

答案 1 :(得分:0)

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?

答案 2 :(得分:0)

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

例如 - :read !date

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

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

答案 3 :(得分:0)

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

如果您使用vi模式,则可以按<Esc>v执行相同操作。