Vim "Показать мою последнюю команду" команда? - PullRequest
51 голосов
/ 19 января 2012

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

Предположим, я случайно нажал случайный ключ и получил неожиданный результат. Конечно, я могу отменить это, но могу ли я показать, какая клавиша была нажата и как она была интерпретирована?

Ответы [ 4 ]

59 голосов
/ 15 мая 2014

Нажмите двоеточие (:), а затем используйте стрелку вверх, чтобы вернуться к предыдущим командам. Вы также можете использовать стрелки вверх / вниз для перемещения по списку.

42 голосов
/ 19 августа 2015

q: покажет вам историю команд в Vim. q/ покажет вам историю поисков

11 голосов
/ 19 января 2012

Текст из последней команды сохраняется в регистре .. Вы можете увидеть все регистры по : дисплей . К сожалению, это не говорит о том, что запустил нормальную команду.

Для просмотра команд из : (командный режим) вы можете использовать : Hist или q: , который ограничен последними 20 (по умолчанию).

Другая возможность - сохранить буфер отмены : wundo undo.bin - но буфер отмены является двоичным.

Но ни один из них на самом деле не отвечает на ваш вопрос. Мне любопытно, можно ли это сделать.

6 голосов
/ 19 января 2012

Сложно это знать.Вы можете поиграть с переменными:

v:operator
v:count (and v:prevcount)
v:register

Но вы не можете полностью получить последнюю введенную команду нормального режима.

Однако, если вы хотите систематически записывать все, что вы печатаете в Vim, вы можетеlaunch vim -W ~/.vim-last-scriptout (версия для Windows: vim -W "%HOMEPATH%\Vim\.last-scriptout) Вы можете использовать псевдоним в своей оболочке на машине с UNIX.Каждый отдельный ключ или управляющий ключ будет записан в этот файл.Обратите внимание, что если вы используете gvim или vim -g (GUI), вы можете столкнуться с этой ошибкой .

Если вы хотите воспроизвести этот файл, вы можете использовать :source! (с восклицательным знаком) или -s из командной строки.

В Windows я установил gvimportable.exe -W gvim_directory\last_scriptout в качестве редактора по умолчанию в моей программе Commander (FreeCommander).Таким образом, я всегда могу вспомнить, что я набрал, чтобы что-то сделать, и повторить последовательность команд для другого файла.Конечно, у меня есть другой ярлык для открытия Vim и воспроизведения сценария.

Обратите внимание, что файл может быть записан только после выхода из Vim, поэтому вы должны потерять сеанс, чтобы знать, что вы сделали.

...