Мне нравится использовать строгий режим.Когда я набираю строчную переменную (например, «путь») и нажимаю <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>"
- Он не работает в визуальном режиме (поправьте меня, если я ошибаюсь).
- Он также выполняет только поиск вперед.
Вопрос
Как выполнить ввод с учетом регистра (cmd-line) с установленным ignorecase
или как выполнить поиск без учета регистра, если ignorecase
не задано.
Требования
- Работает как в визуальном / обычном режиме.
- Поиск вперед / назад.
- Шаблон присутствует в истории.
Пожалуйстаимейте в виду, решение должно быть простым.Я предпочел бы делать поиск с учетом регистра все время, чем оставлять плагин для поиска.