in vim, how to set “args” to the result of a “grep -l”?

in vim, how to set “args” to the result of a “grep -l”?

To illustrate, here's how to do it from the command-line:

vim `grep "hello" * -Rl` 

This opens vim with all the files that have "hello" in them (-l gives the filenames alone). I want to do the same thing, but from within vim. Conceptually, something like this (which doesn't work):

:args !grep "hello" * -Rl 

I'm open to completely different approaches to achieve this; I'd just like it to be on one line (so it's easy to edit and redo).

The answer is to simply use backticks - but with a key proviso! The below does not work for me, because of the quotes around hello:

:args `grep "hello" * -Rl` 

But it works if I remove them or escape the quotes:

:args `grep hello * -Rl` :args `grep \"hello\" * -Rl` 

(this was buried in the comments after chaos' answer - I added them here to make them more visible, in case anyone else had this problem)

How to make Vim continue bullet points?


Unable to have Vim-like C-W f for Screen's copy-mode
Well, this works for me:.
Unable to replace a space with a new line in Vim
:args `grep -Rl "hello" *` 
Running vim 7.0.305..
VIM Disable Automatic Newline At End Of File

Unable to create a file from a path in Vim

in vim, how to combine ^] and arge, to follow a tag and also add it to the arg list?


Unable to set syntax highlighting automatically in Vim
Try the args command:.
Get ctags in vim to go to definition, not declaration
:ar[gs] `grep -Rl "hello" .` 
If the backticks aren't working for you, are you use you're using a current version of vim?.

88 out of 100 based on 68 user ratings 718 reviews