VIM: borrando de la posición actual hasta un espacio


172

A menudo, al desarrollar, me enfrento a un objeto anidado que me gustaría eliminar del código en el medio de una línea como esta:

htmlDoc.WriteLine("<b><h3>" + this.cbAllSyncs.SelectedItem.ToString() + "</h3></b>");

La parte que me gustaría eliminar es:

this.cbAllSyncs.SelectedItem.ToString()

Sé que puedo contar la cantidad de palabras y puntos e ingresar 7dwpara eliminar de mi posición actual de cursor de "esto". Sin embargo, lo que me encantaría hacer es no tener que contar en absoluto y eliminar al espacio con un solo comando. es posible?

Respuestas:


343

Tratar dtspace. En general se dtxelimina de la posición actual hasta justo antes x. Simplemente txmueve el cursor justo antes del carácter xen la línea actual.

Para eliminar hasta e incluyendo el espacio, use dfspace.


2
¡Esto funciona muy bien! También me da cierta flexibilidad adicional para llegar a otros puntos determinados dentro de ese objeto. ¡Gracias!
Blake Blackwell

27
df<space>elimina hasta e incluyendo el siguiente espacio.
Glenn Jackman

55
igualmente útil, dfT <space> elimina downto en el espacio anterior.
hgmnz

3
También puede agregar un recuento justo antes tde eliminar hasta tantos caracteres. Por ejemplo d2t<space>, eliminará hasta dos espacios.
Waseem

77
Siempre uso el mnemotécnico tcomo 'till stackoverflow.com/questions/7409134/…
acw

71

Puede usar dWo dEcomo @glenn sugirió si no desea eliminar el espacio en sí.

Una PALABRA (W mayúscula) consiste en una secuencia de caracteres no en blanco, separados por espacios en blanco.

Dale un vistazo a la palabra movimientos .


1
Si pudiera votar por dos respuestas, lo haría, ya que esto resuelve la pregunta específica que hice. Gracias por el enlace!
Blake Blackwell

55
o dE- eliminar hasta el final de la secuencia de caracteres no en blanco (no incluye el siguiente espacio en blanco)
glenn jackman

@BlakeBlackwell ¿Quién dice que no puedes votar por dos respuestas? Ya lo hice en esta pregunta. Esta es una información útil.
Java

20

Una posible solución es utilizar la eliminación con una búsqueda.

escriba d/<space>y vim se eliminará hasta que llegue a un espacio.


2
Esto es más general que dWporque también puede usarlo para eliminar del cursor a cualquier carácter, como 2d/+, en este caso, lo que eliminaría también las concatenaciones de cadenas.
Dave Jarvis

1
puedes hacer 2dW y esto funciona igual de bien. de hecho, lo considero una mejor solución, ya que también funcionará con pestañas y otros espacios en blanco. También elimina el espacio en blanco final que desea eliminar hasta.
barkmadley

15

Si desea eliminar desde cualquier lugar dentro de la PALABRA, y en un solo comando, simplemente use daW

(por supuesto, puede usar dawsi desea limitar a una palabra)

Lo uso bastante porque ahorra un movimiento al comienzo de la palabra (en su caso)


daw y daW se comportan igual para mí: ambos eliminan la palabra completa sin importar en qué letra esté mi cursor. No estoy seguro de por qué.
Será el

daw no eliminará los espacios en blanco después de la palabra, mientras que daW lo hará
Louis

4
  • eliminar para la posición actual a un ejemplo de carácter específico "

    dt "
  • eliminar la palabra de la posición del cursor está hasta el final de la palabra

    dw
  • elimine la palabra completa en la que se encuentra el cursor, independientemente de la posición en la que se encuentre el cursor, esto también lo pone en modo de inserción para permitirle insertar de inmediato.

    diw

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.