search - vim 中的字符串完全匹配? (就像在less中的 'regex-off'模式。)

标签 search vim escaping

在 vim 中,我经常想搜索包含需要转义的挑剔字符的字符串。有没有办法可以关闭所有特殊字符的含义,有点像less中的regex-off模式或fgrep?

我正在处理特别多毛的字符串;这是一个例子:

((N/N)/(N/N))/N

无需转义任何字符即可在 vim 中进行搜索将是一个主要的节省时间。

Vim 中的\V 有助于处理一些元字符,但关键不是/或\。

谢谢大家!最后,我将其添加到我的 .vimrc 中:
command! -nargs=1 S let @/ = escape('<args>', '\')
nmap <Leader>S :execute(":S " . input('Regex-off: /'))<CR>

最佳答案

查看您的具体示例,可能最简单的方法(因为\V 在这里无济于事)是使用 ?而不是 / : 那么你就不必逃避 / s:

?((N/N)/(N/N))/N

这将向后搜索而不是向前搜索,但您始终可以在第一次搜索后使用 'N' 而不是 'n' 来向前搜索。或者您可以按 /后跟向上光标键以自动转义正斜杠。

但是,您无法轻松地转义反斜杠。我想你可以这样做:
:let @/ = escape(pattern, '\')

然后使用 n搜索,但这可能并不容易。我能想到的最好的是:
:command! -nargs=1 S let @/ = escape('<args>', '\')

然后做:
:S (N)/(N+1)\(N)
n

关于search - vim 中的字符串完全匹配? (就像在less中的 'regex-off'模式。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1550734/

相关文章:

php - 在 2 个 div 之间传输(添加/删除)php 数组值

vim - 每次启动 Vim 时都需要 BundleInstall(用于 Vundle)吗?

python - 如何避免在 Vim 中每行开头复制意外的缩进?

plugins - Vundle for VIM 无法在 Ubuntu 上运行

html - 如何在文本来自处理指令的 xsl 中取消转义字符

jquery - 在 Django 中实现 Ajax 搜索

sql - 在 Stackoverflow 上进行类似于 "Related Questions"的搜索使用的 SQL 是什么

c - C语言中的 '\0'和 '\n'有什么区别?

javascript - Visual Studio Code JS 片段转义大括号

c++ - 寻找 vector 内的项目