2016-06-07 109 views
1

我试图获得我在视频中看到的功能。基本上,这个人在终端(我相信在使用tmux时很重要),并且使用快捷方式将stdout转换为vim缓冲区,并且可以轻松地导航并选择/复制文本。这是如何完成的?终端 - 在新的vim缓冲区中显示输出

+1

在终端侧这是一个'tmux'功能,了解'手册中拷贝mode'。在Vim方面,它只是粘贴,但请阅读':h'剪贴板'。还有'vipe(1)'来自[moreutils](https://joeyh.name/code/moreutils/)。 – lcd047

回答

1

你在谈论tmux的复制模式

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

可以使用运动与^hĴķ升瓦特^,与搜索?/

一些相关的details

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?

0

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

例如 - :read !date

如果你想在一个新的缓冲输出,使用:new

所以两者结合起来,:new | read !date

0

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

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