?

Log in

No account? Create an account
nyaload

Журнал Пушыстого

Журнал Пушыстого

Previous Entry Share Next Entry
vim: подсветка при поиске (hlsearch), убрать подсветку по esc
nyaload
_winnie
Удивляют меня вим и bash, что у них есть миллион дурацких флажков "не теряй данные", "не забывай команды при нажатии на крестик закрытия терминала", "раскрашивай вывод" ( 95% представителей homo sapiens умеет различать цвета ), "используй адекватную лаконичную информацию в доступных статус-барах", "следи сам за размером окошка терминала", "запоминай историю", "расставляй скобки самостоятельно", "подсвечивай не-вырви-глазно найденное", "не используй дефолтный динамик компьютера", "конкретно для make-файлов используй табы", "включи анду", "сделай так что бы русские буквы работали", ..., ...

И про эти флажки узнаёшь случайно. От товарищей, из блогов, из сборников "1001 совет для vim"

В vim можно сделать подсветку для поиска ( set hlsearch ), и инкрементальный поиск ( set incsearch ).

После включения подсветки поиска начинает дико раздражать то, что её невозможно убрать. Нужно или набрать команду :nohlsearch, или поискать несуществующую ерунду ( /asdfasdf ). После многих лет исследований люди придумали, как при помощи конфига убрать эту разражающую особеность:

:nnoremap <esc> :noh<return><esc>

Оригинальный пост который про это рассказывает: http://www.viemu.com/blog/2009/06/16/a-vim-and-viemu-mapping-you-really-cant-miss-never-type-noh-again/
Tags:

  • 1
я периодически набираю %s/\s+$// чтобы удалить пробелы в конце строк, оно тоже сбрасывает highlight =)

> миллион дурацких флажков

Backward compatibility.

Ну в общем да. Я тоже в последнее время (лет этак десять) предпочитаю софт, в котором нормальные режимы (а не backward compatible) включены из коробки. Но конкретно для vim делаю исключение, потому что этап "найди нужные флажки" я уже прошёл (хотя впереди много ещё открытий чудных), а в настроенном виде он реально удобнее. Но да, без .vimrc строк этак на пятьсот в нём ловить нечего. :-) А новые программы уже предпочитаю такие, чтобы всё сразу работало как надо.

... Тёплый ламповый свет ...


У того, что флажки не включены по умолчанию - есть ещё один страшный грех. Это то что их хуже отлаживают.
Если бы подсветка поиска была включена по умолчанию - то сразу бы поправили что она по esc не убирается.

У меня так:
:map <F7> set hlsearch!<CR>

Советую попробовать вариант из поста. Его идея собственно в том, что снимать подсветку Esc очень интуитивно, + используется клавиша которая не используется в normal режиме, но всегда под рукой.

Мой метод позволяет также _включать_ подсветку.

Не лучше ли так:

nnoremap :noh

Т.е. во-первых без эхо, во-вторых зачем переэмичивать?

В смысле, так:
nnoremap <silent> <ESC> :noh<RETURN>

я как-то сразу отключил его

> :nnoremap :noh

Не будет работать сквозь ssh. Вообще ремапы на esc не работают сквозь истинные терминалы (а не их локальную эмуляцию). Потому что юникс -- окаменелое говно мамонта, а ви (и дальше вим) -- ебанистическая хуйня, которая целеустремлённо ебашится об его грабли, и никого это не волнует по непонятной причине.

Я на F12 замапил, например. Причём когда-то давно замапил даже интеллектуальное включение-выключение, а недавно ваще не понял, чем я тогда думал.

Алсо, если уж что и мапить на ескейп, то inoremap <silent> <Esc> <Esc>`^, чтобы убрать ещё одну ебанистическую особенность, но это я положил в гвимрц, потому что ссш опять же.

Ваще почитай
https://bitbucket.org/fj_/configs/src/74b4d7ccb2c6/_vimrc
https://bitbucket.org/fj_/configs/src/74b4d7ccb2c6/_gvimrc

  • 1