On 2019-05-24 04:40, DwigtArmyOfChampions wrote:
> From a bash shell I can type "grep -l 'foo' *" and that will output
> a list of files that contain 'foo'. I want to vim that list of
> files. In other words, assuming the grep command returns file1,
> file2, ... filen, I want to run the command:
>
> vim file1 file2 file3 ... filen
As others have mentioned, you have
vim $(grep -l 'foo' *)
and
grep -l foo * | xargs vim
(which then has vim complain that input isn't from stdin)
Moreover, vim has some built-in grepping functionality which might be
helpful:
:vimgrep foo *
then you can use
:cn
:cN
:crew
to navigate them, as well as (at least as of a somewhat recent
version of vim) the
:cdo
:cfdo
commands which let you perform operations across all the matches or
across all the matching files. Especially since :vimgrep supports all
the power of Vim's regular expressions which can do things that
grep(1) can't do.
-tim
--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/20190524083202.4c3ea784%40bigbox.christie.dr.
For more options, visit https://groups.google.com/d/optout.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment