Una operación bastante común para mí en vim, ya que soy compulsivo-obsesivo y me gusta mantener mis archivos libres de espacios en blanco, es eliminar el contenido de una línea completa, pero no la línea en sí (es decir, no el salto de línea).
¿Hay una forma integrada de hacer esto? Tal vez una d<movement command>operación?
Hasta ahora, lo mejor que tengo es (en la línea en cuestión) 0d$. ¿Hay una manera más rápida?
key-bindings
cursor-movement
Andrew Ferrier
fuente
fuente

:%s/\s*$//Respuestas:
Puede usar
0Desto irá al primer carácter de la línea y eliminará hasta el final de la línea. Tenga en cuenta que puede usar^Dsi desea dejar solo cualquier espacio en blanco anterior. Además, estas operaciones no pueden repetirse mediante el uso.. Si desea una operación que se pueda repetir con el.comando, consulte la respuesta de David Lord.Temas de ayuda:
:help 0:help D:help ^fuente
.comando. Por esa razón, creocc<Esc>oS<Esc>es más atractivo si te importa repetir..... Funcionan como si esas pulsaciones de teclas se introdujeran de forma interactiva, por lo que los comandos individuales se tratan por separado. El uso.repetirá solo el último comando en la macro.@{reg}, puede repetirla.después.D. Después de una0Doperación, su cursor se dejará en la columna 0. Si su cursor ya está en el comienzo de la línea (después de pasar a otra), parecerá que la macro se repitió correctamente. Intenta mover el cursor hacia adelante en la línea y escribir., verás que solo se repiteD.cc <Esc>hará lo que pidas, pero es más pulsaciones de teclas que0D. Si desea poner algo en esa línea después,ccpuede ser mejor.fuente
.comando. En contraste,0D(como se sugiere en la respuesta elegida) hay dos acciones: el0movimiento y elDcomando.0Dpara mí, ya que lo hejkmapeado<Esc>en mi vimrc, por lo que mis manos ni siquiera tendrían que abandonar la fila de inicio.Sestá documentado como "Sinónimo decc"Sy luegoCtrl+CoEscparece cumplir exactamente la misma función.Entonces puede repetirse
.ya que constituye una sola acción.fuente
0Des probablemente lo que quieres Se eliminará del cursor hasta el final de la línea, dejando la línea (y los caracteres anteriores al cursor) en su lugar.fuente
0Dse eliminará desde el principio de la línea , no desde la posición del cursorMe suelen utilizar
ddO.ddpara eliminar la línea actual yO(eso es una o mayúscula) para agregar una nueva línea.Esto también es 3 pulsaciones de teclas, pero
ddcuenta solo como 1 y medio, y me pareceOmás fácil de escribir que$.Es diferente de la
0Dsolución en que hace una sangría automática, por ejemplo con este código (donde!···hay una pestaña, y █ el cursor:0Dte dejaremos con:Y
ddOte dejaré con:Y si presiona
<Esc>inmediatamente después de esto, Vim debería eliminar la sangría automática, para que tenga lo mismo que con0D.No hay una forma "correcta", dependerá de lo que querrá hacer exactamente. Prefiero
ddOporque es más flexible y porque está "en mis dedos" :-)fuente
^Ddejará el espacio en blanco solo.Odeja en modo de inserción, esto es equivalente acc, excepto sin sangría automática ... a menos que su línea ya haya sido sangrada automáticamente.Y para guardar esa preciosa pulsación de tecla que puede usar,
0Cque eliminará todos los caracteres de la línea actual y lo pondrá en modo de inserción.fuente