Как я могу выделить все появление выбранного слова в GVim, например, в Notepad ++?
Выделите все вхождение выбранного слова?
Ответ 1
В нормальном режиме:
:set hlsearch
Затем найдите шаблон с командой /
в нормальном режиме или <Ctrl>o
, за которым следует /
в режиме Вставки. *
в обычном режиме будет искать следующее вхождение слова под курсором. Опция hlsearch
выделяет все из них, если она установлена. #
будет искать предыдущее вхождение слова.
Чтобы удалить подсветку предыдущего поиска:
:nohlsearch
Возможно, вы захотите сопоставить :nohlsearch<CR>
с некоторым удобным ключом.
Ответ 2
Клавиша *
выделяет все вхождения слова, находящегося под курсором.
Ответ 3
Я знаю, чем это действительно старый вопрос, но если кто-то заинтересован в этой функции, можете проверить этот код http://vim.wikia.com/wiki/Auto_highlight_current_word_when_idle
" Highlight all instances of word under cursor, when idle.
" Useful when studying strange source code.
" Type z/ to toggle highlighting on/off.
nnoremap z/ :if AutoHighlightToggle()<Bar>set hls<Bar>endif<CR>
function! AutoHighlightToggle()
let @/ = ''
if exists('#auto_highlight')
au! auto_highlight
augroup! auto_highlight
setl updatetime=4000
echo 'Highlight current word: off'
return 0
else
augroup auto_highlight
au!
au CursorHold * let @/ = '\V\<'.escape(expand('<cword>'), '\').'\>'
augroup end
setl updatetime=500
echo 'Highlight current word: ON'
return 1
endif
endfunction
Ответ 4
самый простой способ, введите в нормальном режиме *
Ответ 5
Поисковые решения (*, /...) перемещают курсор, что может быть неудачным.
Альтернативой является использование расширенного плагина mark.vim, затем заполните .vimrc
, чтобы включить двойное нажатие триггера (я не знаю) t знать, как выбор клавиатуры может вызвать команду):
"Use Mark plugin to highlight selected word
map <2-leftmouse> \m
Он позволяет многократные выделения, настойчивость и т.д.
Чтобы удалить подсветку, выполните следующие действия:
- Дважды щелкните еще раз
-
:Mark
(выключить до следующего выбора) -
:MarkClear
Ответ 6
Сначала (или в вашем .vimrc):
:set hlsearch
Затем поместите курсор над выделенным словом и нажмите *
.
hlsearch
означает выделение всех вхождений текущего поиска, а *
означает поиск слова под курсором.
Ответ 7
set hlsearch
может быть?
Ответ 8
Включить подсветку поиска:
:set hlsearch
Затем выполните поиск слова:
/word<Enter>
Ответ 9
Сначала убедитесь, что hlsearch включен, выпустив следующую команду
:set hlsearch
Вы также можете добавить это в свой файл .vimrc как установленный
set hlsearch
теперь, когда вы используете механизм быстрого поиска в командном режиме или в обычной команде поиска, все результаты будут выделены. Чтобы двигаться вперед между результатами, нажмите "n" для перемещения назад, нажмите "N"
В обычном режиме для быстрого поиска слова под курсором и перехода к следующему вхождению в одной команде нажмите '*', вы также можете найти слово под курсором и перейти к предыдущему вхождению на нажатие '#'
В обычном режиме быстрый поиск также можно вызвать с помощью
/searchterm<Enter>
чтобы удалить блики при использовании ocuurences, я привязал это к ярлыку в моем .vimrc
:nohl
Ответ 10
Моим любимым для этого является mark.vim плагин. Он позволяет выделить несколько слов в разных цветах одновременно.
Ответ 11
Почему не просто: г /
Это выделит текущее слово под курсором и любые другие вхождения. И вам не нужно давать отдельную команду для каждого элемента, который вы ищете. Может быть, это невозможно в нечестивом gvim? Это по умолчанию vim.
* является хорошим, если вы хотите, чтобы курсор переместился на следующее вхождение. При сравнении двух вещей визуально вы часто не хотите, чтобы курсор перемещался, и это раздражало, чтобы каждый раз нажимать клавишу *.
Ответ 12
Используйте autocmd CursorMoved * exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))
Убедитесь, что у вас IncSearch
установлено что-то. например, call s:Attr('IncSearch', 'reverse')
. В качестве альтернативы вы можете использовать другую группу подсветки на своем месте.
Это будет отображать все вхождения слов под курсором без задержки. Я нахожу, что задержка замедляет меня, когда я wizzing через код. Цвет подсветки будет соответствовать цвету слова, поэтому он будет соответствовать вашей схеме.
Ответ 13
- Добавьте эти строки в свой
~/.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, чтобы искать рекурсивно ниже весь проект над словом
Ответ 14
выделить слово без перемещения курсора, plop
" highlight reg. ex. in @/ register
set hlsearch
" remap `*`/`#` to search forwards/backwards (resp.)
" w/o moving cursor
nnoremap <silent> * :execute "normal! *N"<cr>
nnoremap <silent> # :execute "normal! #n"<cr>
в ваш vimrc.
Что приятное в этом случае: g*
и g#
будет работать как "обычный" *
и #
.
Чтобы установить hlsearch
off, вы можете использовать "короткую форму" (если у вас нет другой функции, которая начинается с "noh" в командном режиме): :noh
. Или вы можете использовать длинную версию: :nohlsearch
Для экстремального удобства (я нахожу, что переключаю hlsearch
, возможно, 20 раз в день), вы можете сопоставить что-то для переключения hlsearch
следующим образом:
" search highlight toggle
nnoremap <silent> <leader>st :set hlsearch!<cr>
.:. если ваш <leader>
равен \ (по умолчанию), вы можете нажать \ s t (быстро) в обычном режиме для переключения hlsearch
.
Или, может быть, вы просто хотите отобразить :noh
:
" search clear
nnoremap <silent> <leader>sc :nohlsearch<cr>
Вышеуказанное просто запускает :nohlsearch
, поэтому (в отличие от :set hlsearch!
) он будет выделять слово при следующем нажатии * или # в нормальном режиме.
веселит