Nota: este no es un duplicado de ¿Cómo funciona el comando "d3fg"? ¡Léalo antes de votar para cerrar!
Llegué a un punto muerto en mi búsqueda para que las pequeñas eliminaciones funcionen como las grandes . El problema que tengo es que no puedo entender cómo reasignar comandos como d3d. De hecho, ni siquiera puedo entender cómo funcionan en primer lugar, ni encontrar ninguna mención de ellos en la ayuda de Vim. *
d3jes sencillo: aplica el d
operador al 3j
movimiento,
3ddtambién es sencillo: ejecuta el dd
comando con un "conteo" de 3.
d3d parece que debería ser sencillo, aplica el d
operador a ... pero ¿qué es 3d
? No es una moción. Si escribe 3dsolo, Vim lo trata como un recuento seguido de un operador, y espera pacientemente por más información.
Y no puede aplicar operadores a otros operadores. ddno se describe en la ayuda como una secuencia de dos operadores. Es un comando separado de dos teclas. (cf. dc, que no hace nada)
Tampoco parece ser que el posicionamiento del conteo sea flexible para comandos que requieren dos pulsaciones de teclas: 2gjmueve el cursor hacia abajo dos líneas de pantalla, pero g2jdescarta las dos primeras pulsaciones de teclas por completo y mueve el cursor una línea hacia abajo.
¿Entonces, cómo funciona? ¿Es este un caso especial en el código interno de Vim? ¿Hay alguna forma de crear un d[count]d
mapeo?
EDITAR : ¿Es un objeto de texto? :h text-objects
no lo incluye en la lista de "comandos de selección de objetos de texto", pero sí incluye dd en una lista de eliminaciones "agrupadas de objetos pequeños a grandes". Y d2awborra la palabra debajo del cursor y la siguiente. Por otro lado, c2dno hace nada.
* Estoy seguro de que debe existir alguna mención de ellos, pero no puedo encontrarlo. He leído :help deleting
, :help motion.txt
y probado :helpgrep dNd
para todos los valores de N de 1-9 .
dd
es idéntico a d_
. _
lleva el cursor a la primera línea que no está en blanco en la ( [count]
-1) línea hacia abajo, pero está en línea, por lo que cuando se combina con un operador, opera en líneas completas. Por esa razón, tiene sentido que pueda aparecer un recuento entre los dos d
s.
d
actúa como una confirmación; Entonces es lo mismo qued3<CR>
.y3y
yc3c
también funciona igual ... No puedo encontrar ningún documento sobre esto en Vim: help, vi (1), nvi (1) o la especificación POSIX ... Se comporta igual envi
y pornvi
cierto .