tutorial pegar lineas linea español editar copiar comandos borrar archivo vim keyboard-shortcuts

vim - pegar - vi ir al final del archivo



eliminar palabra después o alrededor del cursor en VIM (15)

Me gustaría eliminar no solo la palabra anterior al cursor, sino también la palabra que aparece después o alrededor del cursor.

En ese caso, la solución propuesta por OP (es decir, utilizando <cw> ) se puede combinar con la respuesta aceptada para dar:

inoremap <c-d> <c-o>daw<c-w>

alternativamente (solución más corta):

inoremap <c-d> <c-o>vawobd

Muestra de entrada:

word1 word2 word3 word4 ^------------- Cursor location

Salida:

word1 word4

Ahora estoy cambiando a VIM desde TextMate. Encontré ^ + W en modo inserción muy útil. Sin embargo, me gustaría eliminar no solo la palabra anterior al cursor, sino también la palabra que aparece después o alrededor del cursor.

Hice algunas búsquedas en Google, pero lo único que pude encontrar fue que ^ + W para eliminar la palabra ANTES del cursor ...


¿Quieres decir como?

dw


Creo que es solo el daw

daw - delete a word


El modo Insert no tiene ese comando, desafortunadamente. En VIM, para eliminar la palabra completa debajo del cursor, puede escribir viwd en modo NORMAL. Lo que significa "Bloque Vual Iner W ord D elete". Use una mayúscula W para incluir signos de puntuación.


En VI antiguo, b mueve el cursor al principio de la palabra antes del cursor, w mueve el cursor al principio de la palabra después del cursor, e mueve el cursor al final de la palabra después del cursor y dw elimina del cursor al final de la palabra.

Si escribe wbdw , eliminará 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 son considerados como parte de la palabra que se eliminará.


Hice dos asignaciones para poder obtener consistencia en el modo de inserción y fuera de inserción.

:map <''Key of your choice''> caw

:imap <''Key of your choice''> <''Esc''> caw


La respuesta aceptada falla al intentar repetir la eliminación de palabras, pruebe esta solución:

" delete current word, insert and normal modes inoremap <C-BS> <C-O>b<C-O>dw noremap <C-BS> bdw

Mapea CTRL-BackSpace, también funciona en modo normal.


Lo que debes hacer es crear un imap de una determinada clave para una serie de comandos, en este caso los comandos te llevarán al modo normal, eliminarán la palabra actual y luego volverán a insertar:

:imap <C-d> <C-[>diwi


Modo normal:

daw : delete the word under the cursor caw : delete the word under the cursor and put you in insert mode


No estoy seguro sobre su uso de "antes" y "después", pero lo ha intentado

dw

?

Editar: supongo que estás buscando algo para usar en el modo de inserción. Curiosamente, no hay nada que se encuentre en los documentos, ctrl-w parece ser todo lo que hay.


No parece que haya una forma incorporada de hacerlo en modo insertar, que era la pregunta. Algunas de las otras respuestas son correctas para el modo normal, y también indican que se podría crear una asignación personalizada para agregar la funcionalidad en el modo de inserción.

Honestamente, probablemente debas hacer la mayor parte de tu eliminación en modo normal. ^ W está bien saberlo, pero no estoy seguro de que pueda pensar en una situación en la que prefiero 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 usa productivamente, probablemente descubra que no pasa mucho tiempo en el modo de inserción.


Para eliminar todos los caracteres entre dos espacios en blanco, en modo normal:

daW

Para eliminar solo una palabra:

daw


Para eliminar la palabra completa en la que está el cursor, usa diw
Para eliminar la palabra completa en la que se encuentra el cursor y ponerlo en modo insertar, use ciw
si no desea eliminar la palabra completa, pero elimine desde donde está el dw/cw


Para eliminar una cierta cantidad de caracteres antes del cursor, puede usar X. Para eliminar un cierto número de palabras después del cursor, puede usar dw (se pueden eliminar varias palabras usando 3dw para 3 palabras, por ejemplo). Para eliminar todo el cursor en general, puede usar daw.


Lo siguiente funciona para el modo Normal: estoy de acuerdo con la respuesta de Dan Olson de que probablemente deberías 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:
diw para eliminar en la palabra (no incluye espacios)
daw para 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 de inserción ^ w
La idea de utilizar hjkl para el movimiento 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 ingresó en el modo de inserción, ingresó texto y usó las teclas de flecha para terminar en el medio de la palabra que ha utilizado en contra de la filosofía de la línea de inicio.
Si está en modo normal y desea cambiar la palabra, simplemente puede usar c (cambiar) en lugar de d (eliminar) si desea cambiar completamente la palabra y volver a ingresar el modo de inserción sin tener que presionar i para volver a escribir.