Как выделить все вхождения выбранного слова в GVim, как в Notepad ++?
159
В обычном режиме:
:set hlsearch
Затем выполните поиск шаблона с помощью команды /
в обычном режиме или с <Ctrl>o
последующим /
в режиме вставки. *
в обычном режиме будет искать следующее вхождение слова под курсором. hlsearch
Вариант будет выделить все из них , если установлен. #
будет искать предыдущее вхождение слова.
Чтобы удалить выделение предыдущего поиска:
:nohlsearch
Возможно, вы захотите сопоставить :nohlsearch<CR>
с каким-нибудь удобным ключом.
hlsearch
много, вы можете:set hlsearch!
вместо карты:set nohlsearch
. Это переключает настройку, а не всегда выключает ее.*
или#
на<Ctrl>o
в нормальном режиме.:nohlsearch
вы можете просто использовать:noh
.vimrc
:noremap <F4> :set hlsearch! hlsearch?<CR>
для переключения между выделением и удалением выделения по<F4>
.*
Ключ будет выделить все вхождения слова , который находится под курсором.источник
&hlsearch
включен.#
.Я знаю, что это действительно старый вопрос, но если кто-то заинтересован в этой функции, можете проверить этот код http://vim.wikia.com/wiki/Auto_highlight_current_word_when_idle
источник
самый простой способ, наберите в обычном режиме
*
У меня также есть эти сопоставления для включения и отключения
Выберите слово, нажав на него
Бонус: CountWordFunction
Выделение слова с помощью мыши и одновременный подсчет вхождений: OBS: обратите внимание, что в этой версии у нас есть команда «CountWord» в конце
источник
nnoremap * *``cgn
иnnoremap # #``cgN
*
, как я наберу , как отключить подсветку?:noh
или:nohlsearch
nnoremap <silent> * :execute "normal! *N"<cr>
аnnoremap <silent> # :execute "normal! #n"<cr>
? Они просто выделяют слово под курсором, но не перемещают его в следующий раз.Решения на основе поиска ( *, /...) перемещают курсор, что может быть неудачно.
Альтернативный вариант - использовать улучшенный плагин mark.vim , а затем завершить его,
.vimrc
чтобы дважды щелкнуть подсветку триггера (я не знаю, как выбор клавиатуры может вызвать команду):Это позволяет многократные выделения, постоянство и т. Д.
Чтобы удалить выделение, либо:
:Mark
(выключить до следующего выбора):MarkClear
источник
:set noincsearch
. На мой взгляд, это одна из самых раздражающих функций в Vim и одна из первых вещей, которые я отключаю для новых установок.*
безоговорочно переместит курсор. И я не могу понять, как этоincsearch
может раздражать, поскольку это всего лишь «взгляд вперед», выполняющий текущий поиск без фактического изменения вашей позиции.incsearch
предотвратит движение, но быстрый тест подтвердит, что вы правы. Мои извинения. Тем не менее, это очень легко создать отображение , которое предотвращает движение::nnoremap * *N
. Я не могу поверить, что вас не раздражает, что ваш курсор перемещается по экрану во время поиска. Но ... эти вещи абсолютно субъективны. Vive la différence ;-):let @/='hilight_this'
, если выhlsearch
включили. Он подсвечивает текст без прыжков, и вам не нужно менять существующие настройки. Это изменяет значение, которое в данный момент хранится в регистре поиска.Сначала (или в вашем .vimrc):
Затем поместите курсор на слово, которое вы хотите выделить, и нажмите
*
.hlsearch
означает выделить все вхождения текущего поиска, а также*
означает поиск слова под курсором.источник
Сначала убедитесь, что hlsearch включен, введя следующую команду
Вы также можете добавить это в свой файл .vimrc как установлено
теперь, когда вы используете механизм быстрого поиска в командном режиме или обычную команду поиска, все результаты будут выделены. Для перемещения вперед между результатами нажмите «n», для перемещения назад нажмите «N»
В обычном режиме, чтобы выполнить быстрый поиск слова под курсором и перейти к следующему вхождению одной командой, нажмите «*», вы также можете найти слово под курсором и перейти к предыдущему вхождению, нажав «#». '
В обычном режиме быстрый поиск также может быть вызван с помощью
чтобы убрать блики при использовании ocuurences, я привязал это к ярлыку в моем .vimrc
источник
Включить подсветку поиска:
Затем найдите слово:
источник
Мой любимый для этого плагин mark.vim . Это позволяет выделять несколько слов разными цветами одновременно.
Пример скриншота
источник
выделить слово без перемещения курсора, хлопнуть
в ваш vimrc.
Что хорошо в этом, так это
g*
иg#
будет работать как "нормально"*
и#
.Для
hlsearch
запуска вы можете использовать «short-form» (если у вас нет другой функции, которая начинается с «noh» в командном режиме)::noh
. Или вы можете использовать длинную версию::nohlsearch
Для чрезвычайного удобства (я переключаюсь,
hlsearch
может быть, 20 раз в день), вы можете сопоставить что-то с переключателемhlsearch
следующим образом:.:. если ваш
<leader>
есть \(это по умолчанию), вы можете нажать \st(быстро) в нормальном режиме для переключенияhlsearch
.Или, может быть, вы просто хотите
:noh
составить карту:Вышеприведенное просто работает
:nohlsearch
так, что (в отличие от:set hlsearch!
) оно все равно выделит слово при следующем нажатии *или #в обычном режиме.ура
источник
может быть ?
источник
использование
autocmd CursorMoved * exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))
Убедитесь, что вы что-то
IncSearch
настроили. напримерcall s:Attr('IncSearch', 'reverse')
. В качестве альтернативы вы можете использовать другую группу подсветки.Это выделит все вхождения слов под вашим курсором без задержки. Я обнаружил, что задержка замедляет меня, когда я просматриваю код. Цвет выделения будет соответствовать цвету слова, поэтому он будет соответствовать вашей схеме.
источник
Почему бы просто: z /
Это выделит текущее слово под курсором и любые другие вхождения. И вам не нужно давать отдельную команду для каждого элемента, который вы ищете. Возможно это не доступно в нечестивом гвиме? По умолчанию это vim.
* хорошо, только если вы хотите, чтобы курсор перемещался к следующему вхождению. При визуальном сравнении двух вещей вы часто не хотите, чтобы курсор двигался, и раздражает нажатие клавиши * каждый раз.
источник
~/.vimrc
файл" highlight the searched items set hlsearch " F8 search for word under the cursor recursively , :copen , to close -> :ccl nnoremap <F8> :grep! "\<<cword>\>" . -r<CR>:copen 33<CR>
:so%
В обычной модели перебери слово.
Нажмите * Нажмите F8 для рекурсивного поиска по всему вашему проекту над словом
источник
Например, это плагины:
https://github.com/rrethy/vim-illuminate
https://github.com/itchyny/vim-cursorword
Просто найдите под курсором в vimawesome.com
Ключ, как упоминалось в clagccs , заключается в том, что выделение НЕ конфликтует с вашим поиском : https://vim.fandom.com/wiki/Auto_highlight_current_word_when_idle
Снимок экрана: как это НЕ конфликтует с поиском: Примечания:
источник