2012-05-26 2 views
11

Я использую опции incsearch и hlsearch. Все совпадения подсвечиваются после нажатия клавиши ввода, но только первый, когда я печатаю. Я хотел бы выделить все совпадения по мере ввода.Vim: выделить все совпадения в incsearch

Как я могу получить это поведение?

+0

Сегодня я был востребован в Sublime Text (я был счастливым пользователем ST до тех пор, пока я не открыл Vim), и это то, что я хочу увидеть в Vim, в конечном итоге –

+0

Возможный дубликат [Emacs style highlighting for incremental search in vim ] (http://stackoverflow.com/questions/4791584/emacs-style-highlighting-for-incremental-search-in-vim). Ответы должны быть объединены. – cfi

ответ

7

К сожалению, это невозможно без написания собственного поиска в Vimscript (захватывая каждую клавишу с помощью getchar(), выделяя через :match) или заплат ядра Vim исходный код на языке C.

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

+1

Бьюсь об заклад, кто-то может определить способ сделать это асинхронно и использовать только свободные циклы, чтобы заполнить остальные матчи (и только те, которые видны в буфере, так или иначе). Знаете ли вы, может ли архитектура Vim хорошо подходить к подобным вещам или же вычислить блокировку после срабатывания каждого ключа? –

+1

@StevenLu Vim по своей сути однопоточный, так что это может быть сложно. –

+0

@StevenLu Это поведение по умолчанию в Emacs, поэтому я бы предположил, что этого не очень сложно достичь в Vim. – Xdxter

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