假设我有一个名为 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 从标准输入读取。