Sé que puedo eliminar del cursor hasta e incluyendo la primera aparición de un carácter x con d/x<CR>
o con v/x<CR>d
si quiero ver la selección primero y luego eliminar. ¿Cómo puedo eliminar de la posición actual del cursor hasta el n º ocurrencia de x ?
Por ejemplo, si el cursor está después del primer espacio en
yada yada yada
yada yada yada x
yada yada yada x
yada yada yada x
xx
y escribo un comando para eliminar hasta la tercera x, el resultado debe ser:
yada
xx
search
cut-copy-paste
Erwin Rooijakkers
fuente
fuente
f
y amigos (F
,t
,T
,;
): por ejemplo,2fx
va a llegar a la segundax
, o2;
va a repetir la últimaf
dos veces.Puedes hacer esto escribiendo
dónde:
fuente
se usa comúnmente en vim para repetir la macro "n" veces.
así que para eliminar hasta la primera aparición de x, usaría
1dfx
. Del mismo modo, para eliminar hasta la tercera aparición de x, usaría3dfx
.fuente
@x
dondex
está su registro. A lo que se refiere es a un comando de modo normal.<n>macro
no es una notación estándar en vim para las macros y como su respuesta usa un comando de modo normal, es más o menos lo mismo que el de kapil.Dado:
donde los
$
extremos indicados de las líneas (:set list
modo), si el cursor está al comienzo del segundoyada
en la primera línea, primero tenemos que retroceder al espacio anterior usando h, para incluirlo en la eliminación. Entonces solo 4d/xEnter. En otras palabras, solo un recuento delante d/x. El resultado es exactamente:fuente