Quando si utilizza set showcmd
Vim mostra i comandi parziali nell'ultima riga dello schermo. Ad esempio, in modalità Normale quando si digita il comando viene visualizzata dt.
l'ultima riga dt
e quindi, quando si preme .
il comando è completo e quindi non viene mostrato nulla.
C'è un modo per mostrare i comandi completi? Ad esempio, durante la digitazione dt.gU(
, dt.
verrà mostrato per primo; e quando si inizia a digitare il secondo comando, il primo verrebbe cancellato, in modo che alla fine gU(
venga visualizzato solo.
Questo potrebbe essere utile ad esempio per illustrare GIF; e verificare di aver digitato ciò che si desidera se si riscontrano risultati imprevisti.
dt.gU(
sono 2 comandi: dt.
e gU(
.... Quindi quello che vuoi davvero è mostrare una sorta di cronologia dei comandi (Vim sta già mostrando i "comandi completi").
src/normal.c
chiamate di codice clear_showcmd()
in diversi luoghi ( normal_cmd()
, do_pending_operator()
, end_visual_mode()
). Sto giocando con il dumping su un file showcmd_buf
in quei punti, che sembrava piuttosto buono, ma mi rende abbastanza sicuro che non puoi ottenere quello che vuoi senza modificare in modo simile il codice sorgente di Vim e ricostruirlo. Ovviamente, farlo potrebbe valere la pena di realizzare le tue gif.
dt
arbitro mostra perché è l'operatore corrente in attesa. Una volta che viene dato un movimento, non è più un operatore in sospeso. Supponiamo che siamo andati oltre e l'abbiamo fattodt.gU(gu)daw
. Tutto questo è "un comando completo" o sono quattro comandi completi o qualcos'altro?