在vim中搜索选择

Mar*_*cin 102 vim viemu string-search

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

我知道vim提供了一种搜索单个单词的便捷方式,通过按*#,它还可以使用无处不在的斜杠/命令搜索键入的字符串.当尝试搜索上述字符串的所有实例时,需要一段时间才能重新输入/.

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

CMS*_*CMS 147

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

或者您可以简单地用y抽取所选文本并转到搜索模式/,然后您可以使用Ctrl + R 0粘贴最后一个被拉动的文本

  • @CMS.谢谢.棒极了!使用:reg查看寄存器中的内容然后使用cntl-R N来获取寄存器中的N是非常好的! (3认同)

Cor*_*ein 74

基于arcanex的回答,这是另一种做你想做的事情.

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

说明

q//除了你处于命令模式之外,它与vanilla搜索类似,所以p实际上是"粘贴"而不是键入字符p.所以上面会抓住你要搜索的字符,然后将它们粘贴到搜索中.

(见:help q/)

  • 我喜欢这个,因为我发现输入<ctrl-r>非常不方便. (4认同)
  • 非常适合简单的字符串,但不会转义正则表达式特殊字符,如 [this other answer's comment](http://stackoverflow.com/questions/363111/search-for-selection-in-vim#comment44689091_14747639) 中所述。 (2认同)
  • 而且你甚至不需要拉它。在视觉上选择它,“q/gvp”,其中“gv”代表最后的视觉选择... (2认同)

小智 37

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


cut*_*ine 9

我刚刚通过优秀的书" Practical Vim"了解到有一个插件.你可以在GitHub上找到这个插件.

该插件允许您使用*和搜索视觉选择#.

  • 请注意,其他答案不会进行任何转义.使用这些方法,根据当前的"魔术"设置,不会按字面搜索任何选定的元字符.这甚至可能使需要平衡的元字符的搜索失败.这里提到的插件将在搜索所选文本之前进行转义. (4认同)
  • github 上的这个版本的插件是更新的 (https://github.com/bronson/vim-visual-star-search)。`n` 和 `N` 按预期为下一个和上一个工作。 (2认同)