
Suponiendo una línea como:
grep -ir "$@" * | grep -v "/.svn/" | grep -v "/inc/help/" | head -n 100
Si el cursor está en el primero |
y quiero eliminar hasta head
, ¿cómo podría hacerlo con t? Sé que puedo v/hea
seleccionar hasta, pero cuando borre el texto , también hea
habré eliminado el principio h
. head
Podría simplemente h
respaldar a un personaje, pero ahora esto es una cadena de soluciones. Funciona, pero me gustaría saber si hay una manera mejor.
¿Hay alguna forma de t
depender de dos o más personajes en lugar de un solo personaje?
Respuesta1
Prueba esto:
:vnoremap / //b-1<left><left><left><left>
Cuando escribe v
para seleccionar visualmente una región, luego escribe /
para comenzar la búsqueda del final de la región, Vim ingresará
//b-1
en la línea de comando con el cursor sobre el segundo /
. Luego escribe los 2 o más caracteres con los que desea terminar la región y presiona Enter. Le b-1
dice a Vim que busque ese patrón y coloque el cursor un carácter antes ( -1
) del b
comienzo de la coincidencia. Ver
:help search-offset
No es necesario hacer un mapa /
. Podrías mapear t
o algún otro personaje en su lugar.
Respuesta2
Si puedes hacerlo de forma interactiva, puedes probarlo concomplemento easymotion:
d;;fh
-> atenuará todo el texto y marcará todas h
las letras en rojo, pero sustitúyalas por a,b,c,…
y luego podrá presionar b
para eliminar a la segunda h
.
Sé que esta descripción es un poco críptica; eche un vistazo avideo de Youtube
Ps.: Olvidé mencionar ;
que es mi clave de líder.
Respuesta3
d2fh
Lo haré en tu ejemplo.
Respuesta4
No, t
acepta solo un carácter. Lo haría vththd
.