2009-09-03 25 views
56
  • ¿Cómo se elimina una palabra a la izquierda? En otras palabras, elimine la palabra cuando el cursor esté al final de ella.
  • ¿Cómo se eliminan los caracteres al principio de la línea?
  • ¿Cómo se elimina uno al primer espacio en blanco a la izquierda?vim eliminar trucos hacia atrás

  • ¿Algún otro truco relacionado con la eliminación de palabras?

Respuesta

90

En general, d < movimiento> borrará desde la posición actual a la posición final después de < movimiento>. Esto significa que:

  1. d < CursorIzquierda> eliminará carácter actual e izquierda
  2. d $ borrará desde la posición actual hasta el final de la línea
  3. d^borrará de retroceso actual al primer no-blanco- carácter de espacio
  4. d0 borrará de retroceso actual al principio de la línea
  5. dw borra actual al final de la palabra actual (incluyendo espacio final)
  6. db elimina la corriente a principio de la palabra actual

Lea this para conocer todas las cosas que puede combinar con el comando 'd'.

+1

Otro atajos útiles en caso de que encuentre 'db' difícil de recordar: ' 5. dw o d 'y ' 6. db o d ' – Crisboot

+1

En lugar de escribir' d 'do' dh' en su lugar, ya que 'h' es la clave para mover a la izquierda – Dylanthepiguy

+0

¿Por qué se acepta esta respuesta? d (y no de abajo, excepto dw) no eliminará un carácter bajo un cursor como OP quería. – listerreg

11

En el modo de comando:

  1. bdw, volver palabra de eliminación.
  2. d^ (a la primera no esté en blanco), d0 (hasta el primer carácter)
  3. BdW (ir al primer espacio en blanco eliminar al siguiente espacio en blanco)

(Comunidad wiki, se sienten libres para introducirse.)

+0

Aquí van: 3. BDW –

15

En el modo de inserción:

  • ^w
  • ^u
  • no puede responder de la cabeza ;-)

lo contrario:

  • dw
  • v0x
  • no puede responder de la cabeza ;-)
1

/ <CR>x

(sear ch forward para un espacio, presiona enter para ir allí, x para borrar)

Puede haber una manera más mágica de hacerlo, pero no conozco ninguno.

+0

Si desea eliminar el primer espacio en blanco a la izquierda, golpeó? en lugar de/en mi ejemplo. – inkedmn

13
  1. db (si el cursor se encuentra después de la palabra) o bdw
  2. d0 (o d^ si quiere eliminar al primer caracter no blanco)
  3. dE o dtEspacio para eliminar en el primer espacio o d/\sIngrese para eliminar el siguiente carácter de espacio en blanco.

Editar

Dado que la cuestión se ha cambiado de tal manera que 3 es eliminar al primer carácter de espacio en blanco a la izquierda, mi respuesta debe cambiar a:

  1. dB o dShiftTespacio eliminar b ack al primer espacio o d?\sIngrese para borrar el carácter de espacio en blanco anterior.

Ver:

:help motion.txt 
:help WORD 
+0

Buena llamada en el n. ° 3. No estaba seguro de cómo manejar CUALQUIER espacio en blanco. Vale la pena mencionar que dF eliminará hasta e incluyendo el , mientras que dT dejará allí el . –

+0

Vine aquí en busca de algo así como 'bdw'. El caracter restante (el que originalmente estaba bajo el cursor) de 'db' me molestaba. – Deiwin

17

Para responder al punto n. ° 3, diw y daw son excelentes.

+2

Me parece triste que no haya comandos de dos caracteres para eliminar una palabra al revés cuando estás en la última letra, porque en editores estándar como Notepad ++, gedit, etc. puedes usar CTRL + Retroceso fácilmente ... excepto desde ese vim es excelente. – itmuckel

+0

@ Micha90, ¿has leído la respuesta aceptada? 'db' hace exactamente eso, y es repetible con'. '. – roggan87

+1

@ roggan87 Si está en la última letra de una palabra, 'db' borra las letras que preceden a la última letra pero deja la última letra. –

36

He estado en este escenario muchas veces. Quiero deshacerme de todos los espacios en la línea 10 para unirme a la línea 9 después de la coma.

enter image description here

Ésta es básicamente una simple línea unirse a VIM.

kJ hace el truco (ver a continuación)

Vim Join Lines

+3

¡He estado buscando a todos lados por esto! –

+0

¡Me alegro de que haya sido de ayuda! Es posible que desee comprobar esto también :-) http://stackoverflow.com/a/27542895/226255 – Abdo

+2

Gracias por estos consejos. Funciona genial. – Reboot

Cuestiones relacionadas