Lorsque vous utilisez set showcmd
Vim, les commandes partielles s'affichent sur la dernière ligne de l'écran. Par exemple, en mode normal lors de la saisie de la commande, dt.
la dernière ligne s'affiche dt
, puis lorsque vous appuyez sur .
la commande est terminée et donc rien n'est affiché.
Existe-t-il un moyen d'afficher les commandes complètes? Par exemple, lors de la frappe dt.gU(
, le premier dt.
sera affiché; et lorsque vous commencez à taper la deuxième commande, la première est effacée, de sorte qu'à la fin, seul gU(
s'affiche.
Cela pourrait être utile, par exemple, pour illustrer des GIF; et pour vérifier que vous avez tapé ce que vous vouliez si vous faites face à un résultat inattendu.
dt.gU(
y a 2 commandes: dt.
et gU(
.... Donc, ce que vous voulez vraiment, c'est afficher une sorte d'historique des commandes (Vim montre déjà les "comamnds complets").
src/normal.c
les appels de code clear_showcmd()
à plusieurs endroits ( normal_cmd()
, do_pending_operator()
, end_visual_mode()
). Je joue avec le dumping dans un fichier showcmd_buf
à ces points, ce qui semblait assez bon, mais me fait à peu près sûr que vous ne pouvez pas obtenir ce que vous voulez sans modifier de la même manière le code source de Vim et le reconstruire. Bien sûr, cela pourrait valoir la peine de créer vos gifs.
dt
s'affiche car il s'agit de l'opérateur actuel en attente. Une fois qu'il a reçu une motion, ce n'est plus un opérateur en attente. Supposons que nous allions plus loin et que nous ayons fait quelquedt.gU(gu)daw
chose. Est-ce que tout cela est "une commande complète", ou est-ce quatre commandes complètes, ou autre chose?