web-dev-qa-db-ja.com

パイプを使用してviでファイルを編集する方法

File.txtというファイルがあるとしましょう。その中には、viで編集したいファイルの名前があります。ファイルを編集できるように、次のようなことをしたいと思います。

cat file.txt | vi

ただし、それは機能しません。どうすればそれができますか?

物事を明確にするために:

File.txtの内容は次のとおりです。

textfile

そこで、vi textfileと入力したときと同じことが起こるように、どういうわけかfile.txtの内容をviに送信したいと思います。

File.txtの内容は変更される可能性があります。 file.txtにリストされているファイルをviで編集したい。

15
tony_sid

あなたはこれを試すかもしれません:

% vi `cat file.txt`

または、猫の使用を避けるために:

% vi `< file.txt`

あなたはvi(m)に恣意的なことの束を伝えているだけです。 vi(m)に「ねえ、そのファイルを開く」のようなことをさせたい場合は、vi(m)で使用するのと同じコマンドをフィードする必要があります。何かのようなもの :e foo.txt。しかし、それは私が提案したことをするよりも複雑です。

9
akira

少なくともvim(viについてはよくわかりません)については、次のことができます

cat file.txt | vim -

'-'はvimにstdinから読み取るように指示します。

23
Jeff