Parfois, lorsque vous entrez une commande en mode normal, vous pouvez faire une faute de frappe, par exemple si j'ai l'intention de taper 10dk
, je peux accidentellement commencer à taper 19d
.
Étant donné que la commande n'a pas encore été exécutée / validée, est-il possible de supprimer les clés incorrectes en utilisant le retour arrière, en tant que tel:, au 19d<backspace><backspace>0dk
lieu d'avoir à appuyer sur Échap et réessayer la commande?
Question secondaire: existe-t-il un terme Vim pour la structure de données qui contient la commande actuelle avant qu'elle ne soit validée?
vimrc
normal-mode
command-history
HellaMad
la source
la source
Réponses:
Il n'y a aucun moyen de le faire et il est normal qu'il n'y en ait pas: les commandes en mode normal sont généralement assez courtes et peuvent être annulées Escsi vous le gâchez.
Une solution de contournement possible serait d'utiliser la
:normal
commande. Cela rend le processus plus long mais par exemple si vous tapez:normal 10j
dans la ligne de commande, Vim s'exécutera10j
comme si vous l'avez tapé en mode normal. (Voir:h :normal
)Vous pouvez également ajouter ces lignes à votre
.vimrc
:Ils créent un mappage (ici F4mais utilisez ce que vous voulez) qui appellera la fonction
NormalModeCommand()
.La fonction vous permet de taper une chaîne dans la ligne de commande, puis d'exécuter la chaîne que vous avez tapée en tant que commande en mode normal. Lorsque vous tapez la chaîne dans la ligne de commande, vous pouvez la corriger comme toutes les autres commandes. Bien sûr, ce n'est pas idéal, mais encore une fois, Vim n'est pas censé le faire.
la source