sponsor Vim development Vim logo Vim Book Ad

intermediate Tip #316: Using /pattern/ search in a script

 tip karma   Rating 7/4, Viewed by 1562 

created:   August 19, 2002 22:54      complexity:   intermediate
author:   David Brown      as of Vim:   6.0

There are a number of ways you can search for a pattern in a script.   The search function is the typical way to search for a pattern.  But, it has limited options.  In particular, there are no options to control the position of the cursor after it matches the pattern.  

Instead you can use :normal command.  The secret is to add a <CR> (^M) on the end of the command.   For example, to search for "pattern" and move the cursor to the end of the matching pattern issue the command:

:normal /pattern/e+1^M

where ^M is a real carriage return.  It can be entered with <c-v><c-m>.

Another use is when you want to enter a bunch of normal commands together.  For example, if you were looking to find a '{' to highlight and delete a C block.  The '{' may not be on the same line so you can't use the "f" normal command.  

:normal V/{/^M%d

A drawback to using the normal command is that if the pattern does not match then it is difficult to detect.  Also, you can get in trouble with the wrapscan setting.

For more information about these commands look at

:help /
:help normal
:help search()

 rate this tip  Life Changing Helpful Unfulfilling 

<<"Smart <home>" | Mozilla Vim Keybindings >>

Additional Notes

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to [email protected] after searching the archive. Help Bram help Uganda.
Sponsored by Web Concept Group Inc. SourceForge Logo