【发布时间】:2014-04-08 06:36:33
【问题描述】:
我正在使用带有 --literal 标志的 Ack (https://github.com/mileszs/ack.vim) 在 Vim 中搜索项目。我注意到,每当我搜索带有 % 或 # 字符的字符串时,搜索结果与我期望的不匹配。我做了一些研究,发现这是因为 Vim 会在命令中扩展这些字符(% 是当前文件,# 是其他文件,不确定是什么)。
在执行搜索时,考虑到这些符号在代码中经常出现,这是非常烦人的行为。有没有办法逃避它们,最好是自动的,以便搜索按预期工作?我目前的映射是:nnoremap <leader>al :Ack --literal<space>。
示例
假设我在某处的 CSS 文件中有一个选择器 #body,我想找到它。这些是我尝试过的东西(没有奏效):
:Ack --literal #body
:Ack --literal \#body
:Ack --literal "#body"
:Ack --literal "\#body"
任何想法为什么转义在这里不能像往常一样工作,或者这甚至在搜索什么?我没有让这些例子匹配任何东西。
解决方案
我已经通过双重转义字符来实现它。例如,:Ack --literal "\\#body" 将在结果窗口的状态行中显示:ack -H --nocolor --nogroup --column --literal "#body" 并显示预期的结果。引号似乎也是必需的。
【问题讨论】:
-
@Randy 这很有道理。谢谢!