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