Vim Tips Wiki
Explore
Main Page
All Pages
Community
Interactive Maps
Community portal
To do
FANDOM
Fan Central
BETA
Games
Anime
Movies
TV
Video
Wikis
Explore Wikis
Community Central
Start a Wiki
Don't have an account?
Register
Sign In
Sign In
Register
Vim Tips Wiki
1,649
pages
Explore
Main Page
All Pages
Community
Interactive Maps
Community portal
To do
Editing
Using normal command in a script for searching
Back to page
Edit
Edit source
View history
Talk (2)
Edit Page
Using normal command in a script for searching
We recommend that you
log in
before editing. This will allow other users to leave you a message about your edit, and will let you track edits via your
Watchlist
.
Creating an account
is quick and free.
The edit appears to have already been undone.
Anti-spam check. Do
not
fill this in!
{{TipImported |id=316 |previous=315 |next=317 |created=2002 |complexity=intermediate |author=David Brown |version=6.0 |rating=8/5 |category1=Scripting |category2=Searching }} 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: <pre> :normal /pattern/e+1^M </pre> 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. <pre> :normal V/{/^M%d </pre> Rather than using literal ^M characters, you can use <code>:execute</code> to allow you to place the entire command a string, which lets you use <code>"\<CR>"</code> instead. The first example would thus become: <pre> :execute "normal /pattern/e+1\<CR>" </pre> 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. ==References== *{{help|/}} *{{help|:normal}} *{{help|search()}} ==Comments== Note this will not change the current search after the function exits (only the search history) see ":help function-search-undo". (gvim 7.3 win 32b)
Summary:
Please note that all contributions to the Vim Tips Wiki are considered to be released under the CC-BY-SA
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Help
(
view source
)
Template:Navigation
(
view source
)
Template:TipImported
(
view source
)
Follow on IG
TikTok
Join Fan Lab