:) In my never-ending effort to get lazier, I am looking for a way to improve my "Open Grep/Ack-results in Vim"-snippet. What I'm currently using to open found files is:

vim $(ack -il "pattern")

Using it is a blaze, but it involves one catch - Vim will open regardless if the number of files found is 0 (in other words, Vim opens with nothing loaded into the buffer). Is there any elegant way to avoid this completely insignificant problem?

Thanks in advance

2 Answers 2


How about this?

files=$(ack -il "pattern") && vim $files

(Tested with grep since I don't have ack.) Note that that won't work if ack returns files with spaces in their names.

  • Both solutions provided are fine options, setting this one as the accepted one as it is shorter :) Thanks both!
    – krystah
    Sep 22, 2013 at 17:37

How about immediately quitting Vim when no arguments have been passed:

vim -c 'if !argc()|quit|endif' $(ack -il "pattern")

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .