Je connais les commandes "dd" et "d {motion}", mais je ne trouve pas "dap" dans help.txt de vim. Que fait "dap" en mode normal et pourquoi? (Sinon, comment puis-je trouver ce genre de chose par moi-même?)
la source
Je connais les commandes "dd" et "d {motion}", mais je ne trouve pas "dap" dans help.txt de vim. Que fait "dap" en mode normal et pourquoi? (Sinon, comment puis-je trouver ce genre de chose par moi-même?)
"dap" ne supprime pas tout. Par exemple, essayez de mettre ceci dans votre tampon:
1
1
2
2
3
3
Placez ensuite votre curseur sur «2» et tapez «dap». Cela laissera les «1 et 3».
En effet, "dap" supprime un paragraphe . En fait, c'est en fait le mnémonique: "(D) elete (A) (P) aragraph". Vous pouvez le voir dans l'aide sous :h ap
:
*v_ap* *ap*
ap "a paragraph", select [count] paragraphs (see
|paragraph|).
Exception: a blank line (only containing white space)
is also a paragraph boundary.
When used in Visual mode it is made linewise.
C'est ce qu'on appelle un "objet texte". Vous pouvez lire à ce sujet sous:, :h text-objects
ou vous pouvez lire cet article génial sur les objets texte.
Quoi qu'il en soit, l'idée de base des objets texte est que vous définissez les limites d'un objet , puis appliquez des commandes à cet objet entier même lorsque vous êtes au milieu de celui-ci. Par exemple, je suis sûr que vous savez que vous pouvez utiliser dw
pour supprimer un mot. Mais que faire si vous êtes dans ce scénario?
Hello world
Cursor: ^
Si vous tapez dw
, vous aurez toujours la wo
gauche. Si vous tapez diw
, cela supprimera l' intérieur du mot , donc pour la plupart c'est équivalent à taper bdw
.
Comment puis-je découvrir ce genre de chose par moi-même?
Vous avez eu l'idée de base! Vérifier l'aide est toujours un bon début. Dans ce cas, vous auriez pu réaliser qu'il d
s'agit d'un opérateur, donc l'aide que vous cherchiez vraiment était l'argument de l'opérateur, dans ce cas ap
.
diw
et nebde
sont toujours pas tout à fait les mêmes: si votre curseur est au début d'un mot. De même, si votre curseur se trouve sur un espace entre les mots, alorsbdw
supprimera le mot à gauche, tandis quedaw
supprimera le mot à droite. Je pense que la réponse originale "pour la plupart ..." est probablement la meilleure que nous obtiendrons en termes de ces équivalences.