我知道我可以使用/后跟正则表达式来搜索某些内容。我可以使用?向后搜索。我可以使用n和N重复向前和向后搜索。
还有两个不错的快捷键:*或#将搜索光标下的单词(向前/向后)。这非常有用!(还有g*和g#变体)
但...一旦我使用可视模式 () 选择了文本v,我该如何要求 Vim 精确搜索该文本?快速浏览一下:help
......嗯......没有帮助我。
答案1
如果已经选定了文本块,以下序列将执行您想要的操作:
- y(将选定的文本拖放到
"
寄存器中,默认情况下) - /(进入搜索模式)
- (\ V)(可选,进入“非常无魔法”模式*)
- Ctrl+ (从寄存器r "插入文本)
"
- Enter(从事!)
(*) “非常无魔法”模式将以下文本解释为纯文本而不是正则表达式。但请注意,\
和/
仍然是特殊的,必须以其他方式处理。如果文本没有任何被视为特殊的字符,则可以跳过此步骤。
来源:Vim 使用技巧维基
答案2
您可以先提取突出显示的文本。然后
/
Ctrlr
"
它将粘贴您在 之后拖拽的内容/。
答案3
我从来没有觉得需要这样的功能,但考虑到你可以在 Vim 上找到对任何功能的需求,我认为这来自 Vim Wiki 应该有帮助:
vnoremap // y/\V<C-R>=escape(@",'/\')<CR><CR>
我没有测试过,但看代码,它似乎正是你要找的东西。