¿Cuál es la secuencia más rápida para eliminar al final de la línea después de la posición del cursor?
Ejemplo:
Quiero borrar esta línea de una manera más rápida
Secuencia: 5eD
borrará el último carácter de la palabra.line
Quiero borrar este lin
Moverme con vim a menudo me coloca en el primer o el último carácter de una palabra, obligándome a moverme una tecla más cada vez que quiero eliminar al final de la línea (en el ejemplo anterior, agregando un movimiento a la derecha: 5elD
) ¿Hay una forma más eficiente (moviéndose después del final de la palabra o eliminando después del cursor)?
cursor-motions
Pierre-Jean
fuente
fuente
6wD
deja un espacio después de la última palabra, pero al menos el texto visible es como lo desea.6wDx
termina el trabajo, pero luego estás en cuatro pulsaciones de teclas nuevamente.Respuestas:
D
es un comando inclusivo que funciona sobre un movimiento que incluye el cursor en un extremo y el último carácter imprimible en la línea en el otro extremo. AFAIK no tiene una forma integrada de convertir un comando inclusivo en un comando exclusivo y viceversa.La solución más pesada sería definir sus propios operadores y movimientos / objetos de texto.
Una solución algo más ligera sería definir asignaciones para esos casos de esquina.
Una solución aún más ligera, pero aburrida, sería gastar algunas teclas más en modo visual.
O bien, podría simplemente moverse de una manera un poco más "ágil":
fuente
Hay varias formas de lograr lo que quieres:
Todo esto le cuesta solo +1 pulsación de tecla.
Si fue posible eliminar desde la posición actual +1, entonces tendrá sentido pedir que también se elimine de la posición actual -1. También plantearía la pregunta sobre otros comandos, por ejemplo, eliminar hasta el final del archivo de la línea actual +1, -1, y así sucesivamente.
¿Cómo puede funcionar esto? Solo veo dos formas posibles:
Entonces, no veo una manera de tener algo mejor que las características actuales :-)
Estoy de acuerdo en que es un poco desafortunado que no haya un comando "atómico" para eliminar del siguiente carácter. Veo el uso práctico de lo que está preguntando: cuando acorto un texto, a menudo quiero eliminarlo a partir de un carácter de espacio, porque no quiero dejar espacios en blanco al final de las líneas (Git se queja de eso, por ejemplo). Y los comandos de salto de palabra
w
ye
no son muy adecuados para esto, ya quew
salta a las primeras letras ye
salta a las últimas letras, y no hay un atajo para saltar en el espacio después de una palabra, excepto búsquedas explícitas comof
. Así que entiendo e incluso comparto su necesidad. Simplemente no veo dónde se puede exprimir esto en la funcionalidad existente.La mejor alternativa que se me ocurre es grabar la acción en una macro, digamos
d
. Al final de una palabra (en la última letra), registre así:Luego, puede rehacer esta acción al final de otra palabra con
@d
. Para hacerlo repetidamente, puedes hacerlo@@
. Al hacerlo repetidamente, esto es más rápido de escribir quelD
, pero esto puede depender de su gusto. Si no lo hace repetidamente, la macro realmente no ayuda, ya que de todos modos es la misma cantidad de pulsaciones de teclas (+ la creación de la macro).fuente