2008-12-12 80 views
92

我在编写C++时使用vim和vim插件进行visual studio。通常,我发现自己想在一个函数内搜索一个字符串,例如每次调用object->public_member.memberfunc()在vim中搜索选择

我知道VIM提供了一个便捷的方式来搜索一个词,按*#,而且还可以搜索使用无处不在的斜线/命令输入字符串。当试图搜索像上面那样的较长字符串的所有实例时,在/之后需要一段时间才能重新输入。

有没有办法搜索选择?例如,用v突出显示,然后复制y,在/之后有没有办法粘贴?有更简单的捷径吗?

+0

的可能的复制[如何搜索选定文本?](http://stackoverflow.com/questions/8587136/how-do-i-search-for-the-selected-text) – acm 2016-09-13 17:41:28

回答

141

检查这个Vim的提示:Search for visually selected text

或者你可以简单地抽出选定的文本与Ÿ和去搜索模式/,那么你就可以粘贴与按Ctrl +最后抽出的文本,R 0

+1

非常酷。 CMS =快速+详细。 – Marcin 2008-12-12 15:54:03

+3

@CMS。谢谢。伟大的提示!使用:reg查看寄存器中的内容,然后使用cntl-R N获取寄存器N中的内容非常好! – 2008-12-15 20:22:10

+0

@Rob&@Marcin,不客气,开心! – CMS 2008-12-15 20:55:59

35

使用q/,而不是仅仅/。 (同q)。现在你可以通过你的命令和搜索历史进行VIM编辑! (有时尝试Ctrl-N和Ctrl-P)。

+1

+1有趣的提示!没有真正相关,但仍然非常有用。 – Marcin 2011-08-15 20:54:27

66

建立在arcanex的答案上,这里是另一种做你想做的事情的方式。

  1. 猛拉你要搜索
  2. q/p
  3. 文本输入

说明

q/与香草搜索/类似,但您处于命令模式,因此p实际上是“粘贴”而不是键入字符p。因此,上面的内容会抽出你正在搜索的字符,然后将它们粘贴到搜索中。

(见:help q/

2

实际上,你可以选择在视觉文本,然后按*和#寻找下一个出现的...这将工作相同,唯一需要注意的是:

当搜索时(搜索“hello world”也会在一行的末尾找到“hello”,并在下一行的开头有“world”),选择中的空白符合任何空格。

http://vim.wikia.com/wiki/Search_for_visually_selected_text

9

我刚刚学会(通过优秀图书实用的Vim)有该插件。 您可以找到plugin on GitHub

该插件可让您搜索*#的视觉选择。

-1

突出显示v和使用//搜索的文本。

可以使用Ÿ以及猛拉选择文本,然后粘贴使用p