Как выполнить поиск в буфере без учета регистра и завершение с учетом регистра? - PullRequest
1 голос
/ 05 июня 2019

Мне нравится использовать строгий режим.Когда я набираю строчную переменную (например, «путь») и нажимаю <C-N>, я не хочу видеть константы или имена классов с этим префиксом (например, «PATH_TO_ROOT» или «PathGenerator»).Кроме того, константы обычно находятся на вершине завершения, и мне приходится нажимать дополнительные клавиши.Вот почему я отключил ignorecase вариант.С другой стороны, я почти новее обращаю внимание на случай, когда ищу в буфере.Насколько я знаю, нет специальной опции для поиска или вставки завершения.Я могу поместить \c в шаблон, но опять-таки это требует дополнительных нажатий клавиш каждый раз.Хорошо, мы можем использовать отображение:

cnoremap <expr><CR> getcmdtype() =~ "[/?]" && getcmdline() !~ '\\c$' ? "\<End>\\c\<CR>" : "\<CR>"

Но это немного снижает читабельность.Мне интересно, есть ли лучшее решение?Отдельный вариант, о котором я не знаю?Следующие параметры также отклоняются:

Установка параметра при входе в режим командной строки и отключение при входе в режим вставки.Это приведет к перерисовке экрана, если выделены совпадения из предыдущего поиска.Выделенные Foo и FOO исчезнут при входе в режим вставки и будут выделены снова при входе в режим командной строки.

Настройка @/ регистр.

cnoremap <expr><CR> getcmdtype() =~ "[/?]" ? "\<Esc>:set @/ = histget("search")" : "\<CR>"
  1. Он не работает в визуальном режиме (поправьте меня, если я ошибаюсь).
  2. Он также выполняет только поиск вперед.

Вопрос

Как выполнить ввод с учетом регистра (cmd-line) с установленным ignorecase или как выполнить поиск без учета регистра, если ignorecase не задано.

Требования

  1. Работает как в визуальном / обычном режиме.
  2. Поиск вперед / назад.
  3. Шаблон присутствует в истории.

Пожалуйстаимейте в виду, решение должно быть простым.Я предпочел бы делать поиск с учетом регистра все время, чем оставлять плагин для поиска.

1 Ответ

2 голосов
/ 05 июня 2019

Почему бы просто не поцеловать его?

noremap / /\c
noremap ? ?\c

Да, он сохраняет только два нажатия клавиш.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...