There are some situations while working in vim to add/delete/replace some keywords/lines based on matched pattern. Like remove ^M from a file and we explained various methods to do so.
User may face few other situations where they can use vim commands like %s or :g efficiently.
-
Find a pattern globally and delete the matched lines
Ex: Delete all lines which matches “No match” in a file
[vim]:%s/pattern//g
[/vim]
Or
[vim]:g/No match/d
[/vim]
- Delete all blank lines from a file
[vim]:g/^$/d
[/vim]
- Delete lines which have one or more spaces only
[vim]:g /^\s*$/d
[/vim]
or
[vim]:g!/\S/d or v/\S/d
[/vim]
-
Delete all lines which doesn’t match the pattern
Delete all lines except lines which have the ‘2013-10-29’ date format in the line
[vim]:g!/pattern/d
[/vim] or
[vim]:v/2013-10-29/d
[/vim]
- Copy all lines matching a pattern to end of file.
[vim]:g/pattern/t$
[/vim]
- Move all lines matching a pattern to end/top of file.
[vim]:g/pattern/m$
[/vim] or
[vim]:g/pattern/m0
[/vim]
Source: http://vim.wikia.com/wiki/Power_of_g
I hope it will solve another vim users problem in their day-to-day activities.