He estado usando vim durante algunos años como editor secundario, pero por varias razones, me encuentro usando cada vez más, incluso cuando mi editor principal está disponible. Un problema que siempre me ha molestado vim
y que me impide usarlo más es la forma en que maneja la colocación del cursor. El cursor solo puede estar en un carácter, en lugar de entre caracteres, como sería el caso con cualquier editor creado desde 1984.
Solo para un ejemplo de por qué esto es un problema, si quiero eliminar la última palabra en una línea, presiono $
para ir al final de la línea y luego db
para eliminar hacia atrás. Esto deja un carácter para eliminar, porque realmente$
no fue al final de la línea, fue al último carácter de la línea y eliminó solo lo que estaba antes del carácter actual. El problema no es que tenga que escribir un personaje adicional, es el pensamiento adicional que implica hacer lo que debería ser simple, lo que distrae mi atención de lo que realmente estoy tratando de lograr.db
Me parece que la colocación del cursor de la idea más moderna es en todos los sentidos superior, y me gustaría cambiar vim
para usar ese enfoque. Estoy seguro de que algunos vim
fanáticos incondicionales no estarán de acuerdo con mi opinión al respecto, pero dado que uno de los argumentos estándar para vim
la superioridad es su infinita configurabilidad:
- ¿Puede entregar en este caso?
- ¿Se
vim
puede hacer para colocar el cursor entre los caracteres?
Insert
modo o te falta el punto delnormal
modo. Lo haría$daw
o$bdw
para eliminar la última palabra en una línea en modo normal. EnInsert
modo lo haríaA<Ctrl-w>
.$bD
Respuestas:
Puedes
:set virtualedit+=onemore
, lo que te permite ir más allá del último personaje. Desafortunadamente para ti,$
todavía va al último personaje; tienes que pasar el cursor para pasarlo. Por otro lado, puede usarg$
, que normalmente va al último carácter de la línea de la pantalla en una línea que se ajusta; enonemore
modo también pasa el último carácter de una línea no ajustada (o la última línea de pantalla de una línea ajustada).:h 'virtualedit'
dice que esta opción puede arruinar los scripts, pero no sé qué tan grande es el riesgo en realidad.fuente