«Dap» supprime-t-il tout?

15

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?)

lsusr
la source

Réponses:

29

"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-objectsou 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 dwpour supprimer un mot. Mais que faire si vous êtes dans ce scénario?

Hello world
Cursor: ^

Si vous tapez dw, vous aurez toujours la wogauche. 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 ds'agit d'un opérateur, donc l'aide que vous cherchiez vraiment était l'argument de l'opérateur, dans ce cas ap.

DJMcMayhem
la source
+1! Pour être pédant: diw quitte l'espace de fuite, contrairement à bdw. diw serait le même que bde ;-) Le pendentif pour bdw est en fait daw, qui utilise le même "a" que le trait dans la question.
M.Herzkamp
1
@ M.Herzkamp: Et pourtant diwet ne bdesont 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, alors bdwsupprimera le mot à gauche, tandis que dawsupprimera 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.
wchargin