vi atajo para eliminar "hasta el siguiente carácter X"

149

Entiendo que vi tiene teclas de método abreviado para eliminar caracteres, palabras y líneas con varias opciones.

Sin embargo, no pude encontrar esto:

  • eliminar del cursor al siguiente carácter especificado

Por ejemplo, podría escribir du" esperando que el editor "elimine hasta que se encuentre el siguiente carácter " "

Lo más cerca que sé es d9w donde 9 es el número de palabras para eliminar.

¿Alguien sabe si esto es posible?

    
pregunta kctang 08.10.2011 - 15:43

5 respuestas

244

Utilice dt c , donde c es cualquier carácter, p. para ti, quieres dt "

Esto eliminará hasta no , incluido c .

Si tuvieras:

delete until exclamation point!

Y el cursor estaba en el primer espacio y escribiste dt ! , obtendrías:

delete!

También df c .

Esto eliminará hasta y incluyendo c .

Usar df ! en el mismo ejemplo anterior le daría:

delete

Casi cualquier "movimiento" se puede usar para los comandos d , c , y y similares.

    
respondido por el Arcege 08.10.2011 - 16:19
37
  • Para eliminar hacia adelante hasta el carácter 'X', escriba dtX

  • Para eliminar hacia adelante mediante el carácter 'X' escriba dfX

  • Para eliminar hacia atrás hasta el carácter 'X' escriba dTX

  • Para eliminar hacia atrás mediante el carácter 'X' escriba dFX

respondido por el Mark Wong 02.06.2016 - 18:02
29

La entrada dt # (no a: comando, úsala como un movimiento como G)

eliminará del cursor hasta que no incluya el #. Puedes sustituir cualquier char por #.

    
respondido por el Jessie 21.06.2013 - 02:44
15

Parece que @Arcege ya respondió la pregunta, pero hice d/l para eliminar hasta que el carácter l ; otros personajes también funcionarían.

    
respondido por el zpletan 09.10.2011 - 11:42
6

w se mueve a la siguiente palabra. l se mueve al siguiente carácter.

Así que es d9l para eliminar los próximos 9 caracteres.

    
respondido por el Shun Zhang 10.07.2014 - 19:48

Lea otras preguntas en las etiquetas