爲了說明,這裏是如何從命令行做到這一點:,如何將「args」設置爲「grep -l」的結果?
vim `grep "hello" * -Rl`
這將打開VIM與所有有「你好」在他們(-l給出單獨的文件名)的文件。我想要做同樣的事情,但是從vim開始。從概念上講,這樣的事情(這是行不通的):
:args !grep "hello" * -Rl
我打開完全不同的方法來實現這一點;我只想把它放在一行上(所以編輯和重做很容易)。
答案是簡單地使用反引號 - ,但有一個關鍵的限制條件!以下不爲我工作,因爲引號,周圍hello
:
:args `grep "hello" * -Rl`
但如果我刪除或逃避引號它的工作原理:
:args `grep hello * -Rl`
:args `grep \"hello\" * -Rl`
(這是埋在「混沌後的評論」的答案 - 我在這裏添加它們使其更容易看到,以防其他人有這個問題)
謝謝,我試過使用反引號,但vim不能識別它們 - 而是將「grep」解釋爲文件名。你有答案爲你工作嗎?如果是這樣,我想知道爲什麼它不適合我。 – 13ren 2009-06-23 16:10:52
對,對我來說工作得很好。也許是版本的東西。我使用7.0.305。 – chaos 2009-06-23 16:13:37