Vim Tips Wiki
Register
No edit summary
(tweak new example)
Line 34: Line 34:
 
</pre>
 
</pre>
   
  +
The next example shows use of <tt>\|</tt> ("or") to delete all lines ''except'' those that contain "<tt>error</tt>" or "<tt>warn</tt>" or "<tt>fail</tt>" ({{help|pattern}}):
If you want to match multiple patterns, use \| (for or) or \& (for and):
 
 
<pre>
 
<pre>
:v/error \| warn \| fail/d
+
:v/error\|warn\|fail/d
 
</pre>
 
</pre>
   

Revision as of 06:12, 7 October 2009

Tip 213 Printable Monobook Previous Next

created February 10, 2002 · complexity basic · author tarjei · version 5.7


The ex command g is very useful for acting on lines that match a pattern. You can use it with the d command, to delete all lines that contain a particular pattern, or all lines that do not contain a pattern.

For example, to delete all lines containing "profile" (the first command is optional; it shows the lines that the second command will delete):

:g/profile
:g/profile/d

More complex patterns can be used, such as deleting all lines that are empty or that contain only whitespace:

:g/^\s*$/d

To delete all lines that do not contain a pattern, use g!, like this command to delete all lines that are not comment lines in a Vim script:

:g!/^\s*"/d

Note that g! is equivalent to v, so you could also do the above with:

:v/^\s*"/d

The next example shows use of \| ("or") to delete all lines except those that contain "error" or "warn" or "fail" (:help pattern):

:v/error\|warn\|fail/d

See also

Comments