Выделите идентичные строки в vi (m)

Одной функцией Блокнота ++, который я нахожу действительно полезными и не нашел в другом месте, является выделение другого текста, который идентичен тому, в настоящее время выбираемому.

Действительно ли там что-то подобно возможный с vi (m)? (Конечно, существует. Но как я достигаю его?) Таким образом, любой из тех:

  • Если я нахожусь в Визуальном Режиме и выбрал текст: Выделите идентичный текст

  • Если я искал /foo, выделите все экземпляры foo.

  • Если я в начале строки (серия символов, чисел или символов нижнего подчеркивания), выделите все другие соответствующие строки (предпочтительное решение).

Последний подобен закрывающим скобкам, соответствующим и по моему скромному мнению самому полезному.

Править: Для моего второго варианта использования я нашел решение (то есть, Google нашел его...):

:set hls

Однако другие остаются.

1
задан 15.12.2014, 09:52

3 ответа

Для Вашего третьего требования,

nnoremap , :mat Error "<C-R><C-W>"<CR>
Поместите это в свой vimrc файл..
Нажмите запятую для выделения всех случаев слова в курсоре.
Кроме того, нажатие * или # выделит все случаи строки в курсоре, когда hlsearch будет установлен
править:
Для Вашего первого требования,
vnoremap <silent> , :<C-U>
  \let old_reg=getreg('"')<Bar>let old_regtype=getregtype('"')<CR>
  \gvy:mat Error "<C-R><C-R>=substitute(
  \escape(@", '/".*$^~['), '_s+', '\_s\+', 'g')<CR>"<CR>
  \gV:call setreg('"', old_reg, old_regtype)<CR>
Найденный этим здесь. Измененный к Вашим потребностям.
3
ответ дан 12.12.2019, 07:54
:help hlsearch

 When there is a previous search pattern, highlight all its matches.

таким образом, помещенный

set hlsearch

к Вашему vimrc

3
ответ дан 12.12.2019, 07:54

Для двери номер три, именно это делает # ключ. Это также перейдет к началу предыдущей строки такого. Звездочка (*) делает противоположное: перейдите к началу следующей строки такого.

2
ответ дан 12.12.2019, 07:54

Теги

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