Как я мешаю энергии выделять соответствия после замены?

Я имею set hlsearch в моем ~/.vimrc. Это обычно очень полезно, но это является раздражающим, чтобы должным быть сделать :noh после того, как я делаю замену как '<,'>s/$/',/ (который выделяет конец каждой строки после того, как я выполню его). Как я добираюсь vim не выделяться после замены как это?

Я нахожусь на Ubuntu 9.04 с vim 7.2. У меня есть та же проблема на OS X 10.6 (также vim 7.2). Что-то, что работало бы над обоими, будет желаемым.

ОБНОВЛЕНИЕ: Все ответы, которые я получил, просто добавляют ключ, отображающийся, чтобы сделать :noh (или эквивалент). Я действительно стараюсь избегать пользовательских ключевых поведений, что я действительно привык бы к, но затем заставлять меня потерпеть полный провал без них (например, в компьютере друга, и т.д.). Я хотел бы vim автоматически сделать :noh после выполнения замены. Таким образом, я только хочу hlsearch при использовании / или * (возможно, несколько других случаев), но не другие времена.

13
задан 22.12.2014, 16:55

4 ответа

Если Вы не хотите постоянно отключать, можно обязать ключ переключать выделение, как предложено в этом ответе на подобный вопрос на stackoverflow.

map  <F12> :set hls!<CR>
imap <F12> <ESC>:set hls!<CR>a
vmap <F12> <ESC>:set hls!<CR>gv

Если Вы хотите постоянно отключить выделение:

11.1. After I searched for a text with a pattern, all the matched text
      stays highlighted. How do I turn off the highlighting
      temporarily/permanently?

The 'hlsearch' option controls whether all the matches for the last
searched pattern are highlighted or not. By default, this option is not
enabled. If this option is set in a system-wide vimrc file, then you can
turn off the search highlighting by using the following command:

    :set nohlsearch

(от FAQ VIM)

7
ответ дан 07.12.2019, 11:33

Поместите следующее в свой .vimrc файл:

nnoremap <silent> <F11> :exe ":silent! normal /$^\r"<CR>

Это тихо скроет выделенный критерий поиска, но не отключает :set hlsearch функция. Это активируется снова на следующем поиске.

1
ответ дан 07.12.2019, 11:33

У меня есть два различных решения, оба довольно хорошие, каждый с детальным различным поведением. Моим фаворитом является опция 2:

  1. У меня есть следующие 2 строки в моем .vimrc:

    autocmd cursorhold * set nohlsearch
    autocmd cursormoved * set hlsearch
    

    Первый ожидает тайм-аута (не настраивающийся), если курсор не перемещается и выключает hlsearch. Второй снова включает его, если курсор перемещается снова.

    Это не идеальное решение, но это работает на меня (и будет близко к идеальному, когда тайм-аут настраивается - на данный момент, тайм-аут связывается со встроенным таймером для энергии.)

  2. Или можно попробовать эти строки:

    autocmd cursorhold * set nohlsearch
    noremap n :set hlsearch<cr>n
    noremap N :set hlsearch<cr>N
    noremap / :set hlsearch<cr>/
    noremap ? :set hlsearch<cr>?
    

Это выключает hlsearch после краткого тайм-аута никакого перемещения курсора и снова включает его для стандартных поисковых команд. Это не покрывает все возможности снова включения hlsearch, но это - действительно начинающий для подтверждения концепции.

9
ответ дан 07.12.2019, 11:33

Я просто ввожу "/asdf" (принимающий "asdf", не находится в файле) избавиться от выделения. Я знаю, что это довольно упрощенно, но это работает на меня.

2
ответ дан 07.12.2019, 11:33

Теги

Похожие вопросы