Я использую 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"
Любые идеи, почему побег не будет работать здесь, как обычно, или что это вообще ищет? У меня не было этих примеров, соответствующих что-нибудь.
Решение
Я заставил его работать двойным экранированием символов.Например, :Ack --literal "\\#body"
покажет :ack -H --nocolor --nogroup --column --literal "#body"
в строке состояния окна результатов и выведет ожидаемые результаты.Цитаты, похоже, тоже нужны.