I use vim and vim plugins for visual studio when writing C++. Often, I find myself wanting to search for a string within a function, for example every call to object->public_member.memberfunc()
.
I know vim offers a convenient way to search for a single word, by pressing *
and #
, and it can also search for typed strings using the ubiquitous slash /
command. When trying to search for all the instances of a longer string like the one above, it takes a while to re-type after /
.
Is there a way to search for selection? For example, highlight with v
, then copy with y
, is there a way to paste after /
? Is there an easier shortcut?
You can actually select text visually and press * and # to search for the next occurrence... It will work the same, the only caveat is that:
http://vim.wikia.com/wiki/Search_for_visually_selected_text
Check this Vim tip: Search for visually selected text
Or you can simply yank the selected text with y and go to search mode /, then you can paste the last yanked text with Ctrl+R 0
I just learned (through the excellent book Practical Vim) that there is a plugin for that. You can find the plugin on GitHub.
The plugin lets you search for a visual selection with
*
and#
.Building on arcanex's answer, here is yet another way to do what you want.
Explanation
q/
works similarly to vanilla search/
except you're in command mode sop
actually does "paste" instead of typing the characterp
. So the above will yank the characters you're searching for, then paste them into a search.(see
:help q/
)Use q / instead of just /. (Same with q :). Now you can VIM-edit through your command and search history! (Try Ctrl-N and Ctrl-P sometime).