如何将Vim中的搜索范围限制为光标当前所在的函数/类/代码块,而不必弄清楚行号是什么?由于存在用于选择当前代码块的方法,因此能够在视觉选择中进行搜索也会这样做.
(与此问题类似,但更通用)
Mar*_*off 14
我将复制并粘贴"使用/和搜索"的全部内容.(来自视觉选择)来自Vim Tips Wiki.
在视觉模式下,/并且?将更新可视选择就像任何其他光标移动命令(即,当在视觉模式下,搜索会延长选择).
为了在视觉选择中实际搜索,您将需要使用
\%V原子,或使用视觉选择定义的标记\%>'<和\%<'>原子.最好Esc在输入搜索之前保留视觉选择.您可能需要考虑映射以自动保留视觉选择并输入适当的原子.例如:Run Code Online (Sandbox Code Playgroud):vnoremap <M-/> <Esc>/\%V使用此映射,您可以按 Alt- /以便为搜索自动填写"范围",就像使用Ex命令一样
:.要使用此功能,请移至第一个感兴趣的行,然后按V以启动逐行视觉选择.向下移动(按j一行或}段落等).选择要搜索的区域后,按Alt- /.视觉选择将被删除,搜索命令将开始.你会看见:Run Code Online (Sandbox Code Playgroud)/\%V添加您要查找的内容,然后按 Enter.例如,您可以输入绿色并查看:
Run Code Online (Sandbox Code Playgroud)/\%Vgreen按下时Enter,每次出现的"绿色"都会突出显示,但仅限于您之前选择的区域.
以下是另外两个不使用视觉选择的示例.第一个命令仅搜索第10行到第20行(包括第10行).第二个仅在标记a和b之间搜索.
Run Code Online (Sandbox Code Playgroud)/\%>9l\%<21lgreen /\%>'a\%<'bgreen