Ответ 1
Нажмите двоеточие (:
), а затем используйте стрелку вверх, чтобы начать возвращаться к предыдущим командам. Вы можете также использовать стрелки вверх/вниз для перемещения по списку.
Есть ли команда, которая показывает, что была последней командой в обычном режиме?
Предположим, что я случайно попал в случайный ключ и получил неожиданный результат. Конечно, я могу его отменить, но могу ли я показать, какой ключ был нажат, и как он был интерпретирован?
Нажмите двоеточие (:
), а затем используйте стрелку вверх, чтобы начать возвращаться к предыдущим командам. Вы можете также использовать стрелки вверх/вниз для перемещения по списку.
q:
покажет вам историю команд в Vim.
q/
покажет вам историю поиска
Текст из последней команды сохраняется в регистре .
. Вы можете просмотреть все регистры на :display. К сожалению, он не говорит, что началось с нормальной команды.
Чтобы просмотреть команды из :
(командный режим), вы можете использовать :hist или q:, который ограничен последними 20 (по умолчанию).
Другая возможность - сохранить буфер отмены :wundo undo.bin, но буфер отмены двоичный.
Но ни один из них не отвечает на ваш вопрос. Мне интересно, если это можно сделать.
Трудно это знать. Вы можете играть с переменными:
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 завершает работу, поэтому вам нужно потерять сеанс, чтобы узнать, что вы сделали.