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