我正在使用带有标志的Ack(https://github.com/mileszs/ack.vim)--literal来搜索Vim中的项目.我注意到,每当我搜索带有%或#字符的字符串时,搜索就不像我期望的那样匹配.我做了一些研究,发现这是因为Vim会在命令中扩展这些字符(%是当前文件和#其他东西,不知道是什么).
考虑到这些符号经常在代码中出现,这在执行搜索时非常烦人.有没有办法逃脱它们,最好是自动逃脱,以便搜索按预期工作?我目前的映射是:nnoremap <leader>al :Ack --literal<space>.
例
假设我#body在某个CSS文件中有一个选择器,我想找到它.这些是我尝试过的(没有用过):
:Ack --literal #body
:Ack --literal \#body
:Ack --literal "#body"
:Ack --literal "\#body"
Run Code Online (Sandbox Code Playgroud)
任何逃避的想法都不会像往常那样起作用,或者甚至是搜索什么?我没有这些例子匹配任何东西.
解
我已经通过双重逃避角色来实现它.例如,:Ack --literal "\\#body"将显示:ack -H --nocolor --nogroup --column --literal "#body"在结果窗口的状态行中并显示预期结果.引号似乎也是必需的.
seh*_*ehe 11
你只需要用反斜杠作为前缀
:!echo %
Run Code Online (Sandbox Code Playgroud)
输出当前缓冲区的文件名
:!echo \%
Run Code Online (Sandbox Code Playgroud)
打印一个单独的'%'字符
| 归档时间: |
|
| 查看次数: |
7541 次 |
| 最近记录: |