Ahora estoy cambiando VIMde TextMate. En el ^+Wmodo INSERTAR me pareció muy útil. Sin embargo, me gustaría eliminar no solo la palabra antes del cursor, sino también la palabra después o alrededor del cursor.
Busqué en Google, pero lo único que pude encontrar fue ^+Weliminar la palabra ANTES del cursor.
vim
keyboard-shortcuts
Mantas
fuente
fuente

imap <C-d> <C-o>diwtambién funciona. Tampoco crea un punto de deshacer, lo que <Esc> casi siempre hace.Modo normal:
fuente
da)yci)nunca pensé en esto!.vimrcarchivo así:nmap <Leader>d dawynmap <Leader>c cawawes un ejemplo de selección de objetos. Puede probar las selecciones de objetos en modo visual para ver qué efecto tienen: vimdoc.sourceforge.net/htmldoc/motion.html#object-selectCreo que es solo
dawfuente
aes un comando,Append text after the cursor [count] times.pero ¿cómodawfunciona?ddicta que se 'eliminará'. La 'a' es un tipo de parámetro, que especifica que la eliminación debe incluir un delimitador. Finalmente, la 'w', otra,parametersi lo desea, especifica quewordse eliminará una unidad.dwydaw?dwse eliminará del cursor hasta el final de la palabra, mientrasdawque eliminará toda la palabra junto con un espacio.diweliminará toda la palabra sin tocar el espacio en blanco a su alrededor.Lo siguiente funciona para el modo Normal: estoy de acuerdo con la respuesta de Dan Olson de que probablemente debería estar en modo normal para la mayoría de las eliminaciones. Más detalles a continuación.
Si el cursor está dentro de la palabra:
diweliminar en la palabra (no incluye espacios)dawpara eliminar alrededor de la palabra (incluye espacios antes de la siguiente palabra).Si el cursor está al comienzo de la palabra, simplemente presione
dw.Esto se puede multiplicar agregando los números habituales para el movimiento, por ejemplo, 2w para avanzar 2 palabras, por lo que d2w elimina dos palabras.
Modo Insertar ^ w
La idea de usar hjkl para moverse en Vim es que es más productivo mantener las manos en la fila de inicio. Al final de una palabra ^ w funciona muy bien para eliminar rápidamente la palabra. Si ha entrado en el modo de inserción, ingresó un texto y usó las teclas de flecha para terminar en el medio de la palabra que ha ido en contra de la filosofía de la fila de inicio.
Si está en modo normal y desea cambiar la palabra, simplemente puede usar
c(cambiar) en lugar ded(eliminar) si desea cambiar completamente la palabra y volver a ingresar al modo de inserción sin tener que presionaripara volver a escribirfuente
¿Quieres decir como?
fuente
dwno eliminará más allá de un guión u otra puntuación.Para eliminar todos los caracteres entre dos espacios en blanco, en modo normal:
Para eliminar solo una palabra:
fuente
No parece que haya una forma integrada de hacerlo en modo de inserción, que era la pregunta. Algunas de las otras respuestas son correctas para el modo normal, además de señalar que se podría crear una asignación personalizada para agregar la funcionalidad en el modo de inserción.
Honestamente, probablemente deberías hacer la mayor parte de tu eliminación en modo normal. ^ W es bueno saberlo, pero no estoy seguro de poder pensar en una situación en la que prefiera hacerlo que esc para pasar al modo normal y tener los comandos de eliminación más potentes a mi disposición.
Vim es muy diferente de otros editores (incluido TextMate) de esta manera. Si lo está utilizando productivamente, probablemente encontrará que no pasa mucho tiempo en modo de inserción.
fuente
Para eliminar la palabra completa que está usando su cursor
diwPara eliminar la palabra completa que está encendido su cursor y para ponerlo en modo de inserción, use
ciwsi no desea eliminar la palabra completa pero elimine desde donde está
dw/cwfuente
Como hay muchas maneras de eliminar una palabra, ilustremoslas.
Suponiendo que edite:
e invocar un comando mientras el cursor está en la 'a' en 'barra':
fuente
El modo Insertar no tiene dicho comando, desafortunadamente. En VIM, para eliminar la palabra completa debajo del cursor, puede escribir
viwden modo NORMAL. Lo que significa " V isual-block I nner W ord D elete". Use mayúsculasWpara incluir la puntuación.fuente
La respuesta aceptada falla cuando intenta repetir la eliminación de palabras, pruebe esta solución en su lugar:
Mapea CTRL-BackSpace, también funciona en modo normal.
fuente
Para eliminar una cierta cantidad de caracteres antes del cursor, puede usar X. Para eliminar una cierta cantidad de palabras después del cursor, puede usar dw (por ejemplo, se pueden eliminar varias palabras usando 3dw para 3 palabras). Para eliminar alrededor del cursor en general, puede usar daw.
fuente
En vi antiguo,
bmueve el cursor al comienzo de la palabra antes del cursor,wmueve el cursor al comienzo de la palabra después del cursor,emueve el cursor al final de la palabra después del cursor ydwelimina del cursor al final de la palabra.Si escribe
wbdw, elimina la palabra alrededor del cursor, incluso si el cursor está al principio o al final de la palabra. Tenga en cuenta que los espacios en blanco después de una palabra se consideran parte de la palabra que se va a eliminar.fuente
No estoy exactamente seguro sobre su uso de "antes" y "después", pero ¿ha intentado
?
Editar: supongo que está buscando algo para usar en modo de inserción. Por extraño que parezca, no hay nada que se encuentre en los documentos, ctrl-w parece ser todo lo que hay.
fuente
Hice dos asignaciones para poder obtener consistencia en el modo de inserción y fuera del modo de inserción.
:map <'Key of your choice'> caw:imap <'Key of your choice'> <'Esc'> cawfuente
En ese caso, la solución propuesta por OP (es decir, usando
<c-w>) se puede combinar con la respuesta aceptada para dar:alternativamente (solución más corta):
Entrada de muestra:
Salida:
fuente