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 comando de cursor al final de la línea.
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 comando de cursor al final de la línea.
Respuestas:
El comando dweliminará desde la posición actual del cursor hasta el comienzo del siguiente carácter de palabra. El comando d$(nota, 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. Des sinónimo de d$.
dw
, pero supongo que supuse que habría un comando "eliminar el resto de esta línea". Por ejemplo mi línea tiene ip=|10.1.1.1
con |
ser la posición del cursor. ¿Hay un comando que eliminará todo el 10.1.1.1
?
d$
:!rm -f %
y luego :q!
. Eso elimina todo el archivo.
d^
('d' + caret) ... básicamente d + cualquier personaje que normalmente movería el cursor, creo, pero estoy aprendiendo Vim, así que podría estar equivocado en eso.
Como otros han mencionado: puede usar d$
o D
( shift- d) para eliminar desde la posición del cursor hasta el final de la línea.
Lo que generalmente encuentro más útil es c$
o C
( shift- c) porque eliminará de la posición del cursor hasta el final de la línea y lo pondrá en modo [INSERTAR].
D
para la mayoría de las personas, en mi opinión, ya que no te hace retroceder un espacio al final de la línea.
i
que se inserta antes del cursor y a
que se inserta después del cursor. Si su cursor está al final de la línea y desea insertar al final de la línea, simplemente puede usar a
.
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 (mnemotécnico: como en expresiones regulares). Entonces se d$
elimina al final de la línea. Del mismo modo, e
se desplaza al correo nd de la palabra actual, y w
se mueve al comienzo de la próxima W ord; entonces de
elimina el final de la palabra actual, y dw
adicionalmente elimina el siguiente espacio en blanco.
<kbd>
para teclas reales, no para secuencias de comandos. Por ejemplo <kbd>Ctrl</kbd>+<kbd>C</kbd>
, pero d$
.
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.
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, como se ha dicho, tiene Den modo normal y Ctrl+ len modo de inserción. Como puede ver, también tiene Cque comienza a cambiar hasta el final de la línea.
<C-o> ......... insert normal keystroke in insert mode
He elegido Ctrl, lporque l
está bajo tus dedos. El Ctrl- kya se usa para insertar dígrafos.
He estado buscando :h i_Ctrl
algunas combinaciones de teclas gratuitas, y en realidad es el mayor problema cuando se trata de crear nuevos atajos para realizar acciones en vim.
Para eliminar un rango de líneas después de la posición del cursor, 3Dse 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).
por ejemplo, para el siguiente texto (cursor representado como |
),
If there's a cursor |in the line
here
we
go
El uso del comando 3Dgenerará:
If there's a cursor
go