Vim Tips Wiki
Advertisement

Previous TipNext Tip

Tip: #316 - Using normal command in a script for searching

Created: August 19, 2002 22:54 Complexity: intermediate Author: David Brown Version: 6.0 Karma: 8/5 Imported from: Tip#316

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()

Comments

Advertisement