Подтвердить что ты не робот

В VIM можно использовать выделенный текст в заменяющей статье без повторного ввода?

Скажем, у меня есть слово, выбранное в визуальном режиме. Я хотел бы выполнить подстановку этого слова и всех других экземпляров этого слова в файле с помощью s//. Есть ли способ использовать выделенный текст в части s/<here>/stuff/, не перепечатывая его?

4b9b3361

Ответ 1

Конечно. Если вы выбрали слово, просто "y" ank его, а затем введите:

:%s/<ctrl-r>"/something else/g

Где нажата клавиша ctrl с ключом r и символ "просто".

Все нажатия клавиш:

y:%s/<ctrl-r>"/what to put/g<enter>

Ответ 2

Если вы искали свой текст, прежде чем использовать

CTRL-R/

чтобы вставить последний элемент поиска в ваш поиск и заменить строку.

Вы можете проверить эту страницу для других подобных трюков:

http://www.vim.org/htmldoc/insert.html

Ответ 3

Вам не нужно выдергивать слово, поместить курсор на слово, а затем:

:%s/<C-r><C-w>/bar/g

Ответ 4

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

:exe '%s/' . @" . '/stuff/'

Здесь отображение, чтобы сделать это легко набирать:

vmap <Leader>s y:exe '%s/' . @" . '//g'<Left><Left><Left>

Теперь вы можете выделить что-то в визуальном режиме, введите \s, введите свою замену и нажмите Enter. depesz также делает хорошее сопоставление (почти так же, как он набрал его):

vmap <Leader>s y:%s/<c-r>"//g<Left><Left>