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?

Blake Blackwell
fuente

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.

amit
fuente
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 .

CMS
fuente
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.

Barkmadley
fuente
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)

Louis
fuente
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
Naseeruddin VN
fuente
2

dtspacees la respuesta a su pregunta, pero df+parece que resolverá mejor su problema.

Dan Goldstein
fuente
No hace nada por mí.
Guillermo Siliceo Trueba