5

I use gVim 7.3.46 on Win 7.

It is pretty straightforward to use argdo to search args files for a pattern and replace it while suppressing errors and requiring confirmation.

:argdo %s/pattern/replace/gec | update

However, I would like to delete entire lines that contain the pattern. I use the following.

:argdo %/pattern/d | update

But I can't suppress errors or require confirmation. Is there a way to do this? Thanks!

(Also, is there a way to set "more" off? Thanks!)

1 Answer 1

8

You can suppress some errors by preceding the command with :silent. To delete lines containing a pattern, the command is :g/pattern/d. So the following should do what you want.

:silent argdo g/pattern/d | update

See

:help :silent
:help :g

To turn "more" off,

:set nomore

Also see

:help 'more'
:help more-prompt
:help messages

How to deal with confirmations depends on what needs to be confirmed. Putting a ! after a command often means, "Do it anyway."

3
  • Thanks! Is there I way that I could get the s///gec functionality? Maybe something like argdo %s/pattern/^$//gec? But I think this just deletes the contents on the line, not the whole line. May 31, 2012 at 13:49
  • 2
    To get s///gec to delete an entire line, use this: %s/.*pattern.*\n//ec. The \n will match the end-of-line marker even for a DOS file. The g isn't necessary if you're deleting the entire line.
    – garyjohn
    May 31, 2012 at 15:33
  • 1
    this is so awesome thank you! :set nomore, :arga **/* and :argdo execute 'normal gg=G' | w fixes all the ugly indenting on a project I'm working on.
    – shicholas
    Apr 16, 2014 at 23:19

You must log in to answer this question.

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