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

Как я могу повторить любую команду в Vim, например, "C-x z" в emacs?

В Vim есть ли способ повторить последнюю команду независимо от того, было ли это редактирование или нет, и не предвидеть, чтобы сначала записать макрос?

например. скажем, я набираю :bn и хочу сделать это снова (это был неправильный файл). Нажатие . явно не делает этого. Или, может быть, я делаю gE и хочу повторить это (с одним нажатием клавиши, так как четко gE является болезненным типом).

Возможно, есть плагины? Подобно этому вопросу.

(Еще холоднее было бы ретроактивно связать несколько команд с макросом, поэтому можно было бы ввести [email protected] или что-то повторить последние 5 команд...)

4b9b3361

Ответ 1

Чтобы повторить команду командной строки, попробуйте @:, Чтобы повторить команду normal/insert-mode, попробуйте .,

Добавьте ниже привязку к вашему .vimrc, если вы хотите использовать его: -

:noremap <C-P> @:<CR> - Это отобразит Ctrl + P в предыдущую команду командной строки. Вы можете сопоставить любую другую комбо.

Ответ 2

:help repeating предоставит типичные команды повтора (например., @: и т.д.). Вы можете попробовать repeat.vim. Это может приблизиться к тому, что вы ищете.

Ответ 3

Для команд движения нет механизма, встроенного в Vim. Команды Find и To (f/f/t/t) имеют ; и , для повторения и повторения. Существует несколько плагинов, которые расширяют эти привязки для повторения других команд движения:

http://www.vim.org/scripts/script.php?script_id=2174

http://www.vim.org/scripts/script.php?script_id=3665

Позднее следует поддерживать повторение gE с помощью ;

Ответ 4

Вы можете просто использовать "."

Пример: У вас есть "abc" в 10 местах в вашем файле, и вы хотите заменить его "def" на 5 мест.

Шаг 1: найдите первое обнаружение abc, набрав команду "/abc"
Шаг 2: Когда курсор находится на "abc", замените abc командой "cw", чтобы вынуть слово "abc", Шаг 3: Введите "def" в качестве замены и нажмите "Enter", чтобы перейти в режим команд
Шаг 4: Чтобы повторить это действие, просто введите команду "n", чтобы перейти к следующему вхождению abc и введите команду "." . Команда помнит, что вы в последний раз заменили "abc" на "def" и выполните то же самое здесь.

Ответ 5

Вы можете сопоставить @: с некоторыми клавишами для удобства:

:map <F2> @:

а затем проще использовать его с повторами.