NB Ce n'est pas un doublon de Comment fonctionne la commande "d3fg"? Veuillez le lire avant de voter pour fermer!
Je suis dans une impasse dans ma quête pour que les petites suppressions fonctionnent comme les grandes . Le problème que j'ai, c'est que je ne peux pas comprendre comment remapper des commandes comme d3d. En fait, je ne peux même pas comprendre comment ils fonctionnent en premier lieu, ni trouver aucune mention d'eux dans l'aide de Vim. *
d3jest simple: il applique l' d
opérateur au 3j
mouvement,
3ddest également simple: il exécute la dd
commande avec un "nombre" de 3.
d3d semble que cela devrait être simple, il applique l' d
opérateur à la… mais qu'est-ce que c'est 3d
? Ce n'est pas une motion. Si vous tapez 3dseul, Vim le traite comme un décompte suivi par un opérateur et attend patiemment une nouvelle saisie.
Et vous ne pouvez pas appliquer d'opérateurs à d'autres opérateurs. ddn'est pas décrit dans l'aide comme une séquence de deux opérateurs. Il s'agit d'une commande distincte à deux touches. (cf. dc, qui ne fait rien.)
Il ne semble pas non plus que le positionnement du comptage soit flexible pour les commandes qui nécessitent deux touches: 2gjdéplace le curseur vers le bas de deux lignes d'écran, mais g2jsupprime entièrement les deux premières touches et déplace le curseur vers le bas d'une ligne.
Alors, comment ça marche? Est-ce juste un cas particulier dans le code interne de Vim? Existe-t-il un moyen de créer un d[count]d
mappage?
EDIT : Est-ce un objet texte? :h text-objects
ne comprend pas dans la liste des « commandes texte de sélection d'objet », mais il ne comprend dd dans la liste des suppressions « groupées de petits aux grands objets ». Et d2awsupprime le mot sous le curseur et le suivant. En revanche, c2dne fait rien.
* Je suis sûr que certaines mentions doivent exister, mais je ne le trouve pas. Je l' ai lu :help deleting
, :help motion.txt
et essayé :helpgrep dNd
pour toutes les valeurs de N de 1-9 .
dd
est identique à d_
. _
place le curseur sur le premier non vide de la ( [count]
-1) ème ligne vers le bas, mais il est dans le sens des lignes, donc lorsqu'il est associé à un opérateur, il fonctionne sur des lignes entières. Pour cette raison, il est logique qu'un décompte puisse apparaître entre les deux d
al.
d
fait office de confirmation; C'est donc la même chose qued3<CR>
.y3y
etc3c
fonctionnent également de la même façon ... Je ne trouve pas de documentation à ce sujet, cependant, dans Vim: help, vi (1), nvi (1) ou la spécification POSIX ... Il se comporte de la même manière dansvi
etnvi
btw .