如何使用管道通过 vi 编辑文件

如何使用管道通过 vi 编辑文件

假设我有一个名为 file.txt 的文件。这是我想用 vi 编辑的文件的名称。我想执行如下操作以便可以编辑该文件:

cat file.txt | vi

但是,这不管用。该怎么做呢?

澄清一下:

以下是file.txt的内容:

textfile

所以我想以某种方式将 file.txt 的内容发送到 vi,以便发生与键入时相同的事情vi textfile

file.txt 的内容可以更改。我希望 vi 可以编辑 file.txt 中列出的任何文件。

答案1

你可以尝试这个:

% vi `cat file.txt`

或者,为了避免无用的 cat 使用:

% vi `< file.txt`

你只是告诉 vi(m) 一堆任意的事情。如果你想要 vi(m) 执行诸如“嘿,打开那个文件”之类的操作,你必须向它提供你在 vi(m) 中使用的相同命令,例如。:e foo.txt但这比我提议的要复杂得多。

答案2

至少对于 vim(不确定 vi),你可以这样做

cat file.txt | vim -

'-' 告诉 vim 从标准输入读取。

相关内容