如何将输出从 stdout 重定向到 vim?

Hum*_*man 5 vim pipe stdout

我想echo在vim中查看输出,并在查看后保存到文件中。我试过了echo $PATH | vim,但出现以下错误:

Vim: Warning: Input is not from a terminal
Vim: Error reading input, exiting...

Vim: Finished.
Run Code Online (Sandbox Code Playgroud)

我能做什么?

Dav*_*ill 6

如何将 Stout 的输出重定向到 Vim?

您的问题已在 AskUbuntu 上得到解答。

最简单的解决方案是添加-到您的命令中:

echo $PATH | vim -
Run Code Online (Sandbox Code Playgroud)

您可以使用进程替换(这也适用于无法读取的应用程序STDIN):

vim <(ls -la)
Run Code Online (Sandbox Code Playgroud)

或者使用vim的函数来读取STDIN

ls -la | vim -
Run Code Online (Sandbox Code Playgroud)

如何在 bash 中将命令输出重定向到 vim?,混沌回答


Ing*_*kat 5

您缺少-指示 Vim 从标准输入填充缓冲区的文件名参数;cp。:help --

echo $PATH | vim -
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用 shell 的进程替换来创建一个临时文件描述符,并让 Vim 编辑该“虚拟”文件。

vim <(echo $PATH)
Run Code Online (Sandbox Code Playgroud)