cut-copy-paste – ¿"Dap" elimina todo?

Pregunta:

Estoy familiarizado con los comandos "dd" y "d {motion}", pero no puedo encontrar "dap" en el help.txt de vim. ¿Qué hace "dap" en modo normal y por qué? (Alternativamente, ¿cómo puedo averiguar este tipo de cosas por mí mismo?)

Respuesta:

"dap" en realidad no elimina todo. Por ejemplo, intente poner esto en su búfer:

1
1

2
2

3
3

Luego coloque el cursor en '2' y escriba "dap". Dejará los '1 y 3'.

Esto se debe a que "dap" elimina un párrafo . De hecho, eso es en realidad el mnemónico: "(D) elete (A) (P) aragraph". Puede verlo en la ayuda en :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.

Esto se denomina "objeto de texto". Puede leer sobre estos en:: :h text-objects , o puede leer este asombroso artículo sobre objetos de texto.

De cualquier manera, la idea básica de los objetos de texto es que estás definiendo los límites de un objeto y luego aplicas comandos a todo ese objeto incluso cuando estás en medio de él. Por ejemplo, estoy seguro de que sabe que puede usar dw para borrar una palabra. Pero, ¿y si estás en este escenario?

Hello world
Cursor: ^

Si escribe dw , todavía le wo . Si escribe diw , se eliminará dentro de la palabra , por lo que en su mayor parte es equivalente a escribir bdw .

¿Cómo puedo averiguar este tipo de cosas por mí mismo?

¡Tenías la idea básica! Consultar la ayuda siempre es un buen comienzo. En este caso, podría haberse dado cuenta de que d es un operador, por lo que la ayuda que realmente estaba buscando era el argumento para el operador, en este caso ap .

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım