Как повторить команду с подстановкой в ​​Vim? - PullRequest
20 голосов
/ 19 декабря 2008

В Unix ^ позволяет вам повторить команду с некоторым текстом, замененным новым текстом. Например:

csh% grep "stuff" file1 >> Results
grep "stuff" file1
csh% ^file1^file2^
grep "stuff" file2
csh%

Есть ли эквивалент Vim? Часто я снова и снова редактирую мелкие вещи в командной строке.

Ответы [ 5 ]

47 голосов
/ 18 июля 2013

Специально для подстановок: используйте &, чтобы повторить последнее замещение на текущей строке из обычного режима.

Чтобы повторить для всех строк, введите :%&

10 голосов
/ 20 декабря 2008

q: для входа в окно командной строки (:help cmdwin).

В этом окне вы можете редактировать и повторно использовать ранее введенные команды ex-style.

7 голосов
/ 20 декабря 2008

Есть 2 способа.

  1. Вы просто нажимаете клавишу . , чтобы выполнить точное воспроизведение самой последней команды (кроме движения). Например, я набираю c w , а затем hello, чтобы изменить слово на "привет". Переместив курсор на другое слово, я нажимаю . , чтобы сделать это снова.
  2. Для более сложных команд, таких как замена, после выполнения подстановки просто нажмите клавишу : , а затем клавишу со стрелкой вверх , и она заполнит вашу командную строку та же команда.
6 голосов
/ 20 декабря 2008

Как только вы нажмете :, вы можете напечатать пару символов и стрелку вверх, и она будет соответствовать символу, который вы набрали. например напечатайте :set, и он будет лазать обратно через ваши "наборы". Это также работает для поиска - просто введите / и стрелка вверх. И /abc стрелка вверх предоставит вам соответствующие строки поиска контрхронологически.

0 голосов
/ 20 декабря 2008

Взгляните на это: http://vim.wikia.com/wiki/Using_command-line_history для объяснения.

...