При использовании set showcmd
Vim показывает частичные команды в последней строке экрана. Например, в обычном режиме при вводе команды dt.
отображается последняя строка, dt
а затем, когда вы нажимаете .
команду, команда завершена и, следовательно, ничего не отображается.
Есть ли способ показать полные команды? Например, при вводе текста будет показано dt.gU(
первое dt.
; и при начале ввода второй команды первая будет очищена, так что в конце gU(
будет отображаться только один.
Это может быть полезно, например, для иллюстрации GIF; и проверить, что вы набрали то, что вы хотели, если вы столкнулись с неожиданным результатом.
dt.gU(
есть две команды: dt.
и gU(
.... То, что вы действительно хотите, это показать какую-то историю команд (Vim уже показывает «полные командиры»).
src/normal.c
кодовых вызовов clear_showcmd()
в нескольких местах ( normal_cmd()
, do_pending_operator()
, end_visual_mode()
). Я играю с дампом в файл showcmd_buf
в тех точках, который выглядел довольно неплохо, но я уверен, что вы не можете получить то, что хотите, без аналогичного изменения исходного кода Vim и его перестройки. Конечно, это может стоить хлопот, чтобы сделать ваши гифки.
dt
Показано , потому что это оператор тока в ожидании. Как только он получил ходатайство, он больше не находится в состоянии ожидания оператора. Предположим, мы пошли дальше, и сделалиdt.gU(gu)daw
или так. Это все «одна полная команда», или четыре полные команды, или что-то еще?