Я использую 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"
в строке состояния окна результатов и отображать ожидаемые результаты. Кавычки, похоже, также требуются.