it-swarm-es.tech

Eliminar del cursor al final de la línea en `vi`

Sé que probablemente he revisado esto un millón de veces en todos los documentos vi que he leído, pero parece que no puedo encontrar la eliminación del cursor al comando de fin de línea.

334
Falmarri

El comando dw borrará de la posición actual del cursor al comienzo del siguiente carácter de Word El comando d$ (tenga en cuenta que es un signo de dólar, no una 'S') se eliminará de la posición actual del cursor hasta el final de la línea actual. D es sinónimo de d$.

499
Tok

Como otros han mencionado: puedes usar d$ o D (shift-d) para eliminar desde la posición del cursor hasta el final de la línea.

Lo que normalmente encuentro más útil es c$ o C (shift-c) porque se eliminará de la posición del cursor hasta el final de la línea y lo pondrá en modo [INSERTAR].

54
Brad Johnson

Una de las cosas buenas de vi es su estructura lógica de comandos. d seguido de un comando de movimiento d elige el objetivo de ese movimiento. $ se mueve al final de la línea (mnemónico: como en expresiones regulares). Entonces d$ se elimina al final de la línea. De manera similar, e se mueve al e nd de la Palabra actual, y w se mueve al comienzo del siguiente w ord; entonces de elimina el final de la palabra actual, y dw adicionalmente elimina el siguiente espacio en blanco.

Probablemente quiera usar D. Mueva el cursor al primer carácter que desea eliminar, luego presione shift-D. Todo se fue. En realidad, está en el búfer de corte predeterminado, por lo que puede P o p pegarlo nuevamente.

Uso Dp (eliminar hasta el final de la línea, luego volver a colocarlo), moverme al final de otra línea, luego p nuevamente para pegar el mismo texto al final de esta otra línea. Funciona de maravilla en los archivos de configuración, donde debes poner una URL complicada en dos o más lugares.

21
Bruce Ediger

Para eliminar un rango de líneas después de la posición del cursor, 3D eliminará del cursor hasta el final de la línea, así como las dos líneas siguientes por completo (es decir, elimina 3 líneas después de la posición del cursor).

p.ej. para el siguiente texto (cursor representado como |),

If there's a cursor |in the line
here
we
go

Usando el comando 3D dará salida:

If there's a cursor
go
1
Nick Bull

Creo que un atajo de modo de inserción podría ser útil.

En el modo de inserción, tal vez sería mejor comenzar a cambiar hasta el final de la línea (pon esto en tu ~/.vimrc):

inoremap <C-l> <C-o>C

Entonces tienes, como se ha dicho, D en modo normal y Ctrl+l en modo de inserción. Como puedes ver también tienes C que comienza a cambiar hasta el final de la línea.

<C-o> ......... insert normal keystroke in insert mode

He elegido Ctrl-l porque l está debajo de tus dedos. los Ctrl-k ya se usa para insertar digrafos.

He estado buscando a través de :h i_Ctrl para algunas combinaciones de teclas gratuitas, y en realidad es el mayor problema cuando se trata de crear nuevos atajos para realizar acciones en vim.

1
SergioAraujo