115

在编写 C++ 时,我使用 Visual Studio 的 Vim 和 Vim 插件。通常,我发现自己想在函数中搜索字符串,例如每次调用object->public_member.memberfunc().

我知道 Vim 提供了一种方便的方法来搜索单个单词,通过按*and #,它还可以使用无处不在的斜杠/命令搜索键入的字符串。当尝试搜索像上面这样的较长字符串的所有实例时,重新键入 after 需要一段时间/

有没有办法搜索选择?比如用 高亮v,然后用 复制y,有没有办法在后面粘贴/?有没有更简单的捷径?

4

5 回答 5

160

检查这个 Vim 提示:搜索视觉选择的文本

或者您可以简单地使用y拉出选定的文本并进入搜索模式/ ,然后您可以使用Ctrl+R 0粘贴最后拉出的文本

于 2008-12-12T15:45:42.733 回答
97

回答

  1. 抽出您要搜索的文本
  2. q/p
  3. Enter

解释

q//除了您处于命令模式之外,它的工作方式与原版搜索类似,因此p实际上是“粘贴”而不是输入字符p。因此,上面将复制您正在搜索的文本并将其粘贴到搜索中。

有关更多详细信息,请键入:help q/

于 2012-05-04T16:11:43.440 回答
40

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

于 2008-12-16T01:11:20.073 回答
12

我刚刚了解到(通过优秀的书Practical Vim)有一个插件可以做到这一点。您可以在 GitHub 上找到该插件

*该插件可让您使用和搜索视觉选择#

于 2013-02-07T09:25:22.317 回答
2

您实际上可以直观地选择文本,然后按 * 和 # 搜索下一个匹配项......它的工作原理相同,唯一需要注意的是:

选择中的空白匹配任何空白,在搜索时(搜索“hello world”也会在一行的末尾找到“hello”,在下一行的开头找到“world”)。

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

于 2013-01-13T10:32:45.183 回答