2013-11-21 4 views
2

Мне нравится выделять при поиске в vim. Вот что я хочу:Переключить подсветку во время поиска в Vim

я искать слово с /

Затем все результаты будут выделены. Если я нажимаю любую клавишу, кроме n или N, я хочу, чтобы подсветка была отключена.

Если я снова нажму n или N после любого количества команд, я хочу переключиться на выделение.

С чего начать? Я даже не уверен, что делать с Google.

+6

Не используйте Google, используйте ': help'. – romainl

+0

Я использую это сопоставление: 'nnoremap, h: set hls! 'для переключения подсветки. Я не знаю, достаточно ли этого, чтобы решить ваши потребности. Но я думаю, что большую часть времени для плагина sneak.vim наверняка будет достаточно для него – rbernabe

ответ

2

У меня есть это в моем .vimrc

nnoremap <CR> :noh<CR> 

так, что когда я закончу видеть на первый план, я просто ударил ввести, чтобы удалить его. Он остается, пока я не ударил n или N еще раз.

Примечание: Если вы хотите сохранить функциональность введите, добавьте еще <CR> на конце команды.

+0

Вы всегда можете переназначить какой-то ключ, который вы не используете ни для чего другого. Это может быть последовательность. Я предлагаю двухкассетную последовательность 'gn', поскольку я не верю, что она используется для чего-либо по умолчанию в vim, но вы также можете использовать функциональный ключ или какой-либо другой единственный ключ по вашему выбору. По умолчанию клавиша ввода перемещает строку вниз, и я иногда использую ее. – steveha

+0

Я нахожу '' довольно приятным при создании макросов, когда он идет в начало следующей строки. Лучше, чем делать 'j ^', на мой взгляд. Поэтому, если вы используете это сопоставление, я бы предложил добавить дополнительный '' в конце, как описано в примечании. –

1

Вы можете вручную отключить последнюю подсветку с помощью nohl.

Я дам вам знать, могу ли я понять, как автоматизировать это.

0

Один из способов - настроить отображение переключений. Вот некоторые отображения переключаемых у меня есть в моем .vimrc:

let mapleader="\\" 
noremap <silent> <Leader>th :set invhls hls ?<CR> 
noremap <silent> <Leader>tn :set invnumber number ?<CR> 
noremap <silent> <Leader>ts :set invspell spell ?<CR> 
noremap <silent> <Leader>tw :set invwrap wrap ?<CR> 

Для переключения подсветки просто введите \th для переключения ЗОЖ. Остальные line number, spell checking, line wrapping. Окончательный hls ? отобразит новый режим.

2

I remap control-l (нижний регистр L), чтобы он очищал результат поиска, а также перекрашивал экран. Эта линия в .vimrc делает это:

nnoremap <silent> <C-l> :nohl<CR><C-l> 
0

Я предпочитаю это, потому что мне это не что иное, естественно.

Начните поиск с /<pattern> и как только закончите, просто введите <Leader>/, чтобы остановить выделение.

nnoremap <silent> <Leader>/ :set nohl<CR>

Смежные вопросы