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

Команда Vim "show my last command"?

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

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

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

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

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

Ответ 4

Трудно это знать. Вы можете играть с переменными:

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

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

Однако, если вы хотите систематически записывать все, что вы вводите, находясь в Vim, вы можете запустить 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 завершает работу, поэтому вам нужно потерять сеанс, чтобы узнать, что вы сделали.