No toque el archivo al escribir si el archivo no fue cambiado

15

Ocasionalmente escribo distraídamente :wcuando leo algo. Esto hace que cambie el tiempo de modificación del archivo y, a veces, hace que mi sistema de compilación reconstruya innecesariamente una parte sustancial de un proyecto.

¿Hay alguna manera de configurar vim para que simplemente no haga nada si intento escribir un archivo y no se ha cambiado?

Praxeolítico
fuente

Respuestas:

15

Ampliando la respuesta de @ lcd047 que puede usar cabbrevpara modificarw

:cabbrev w <c-r>=(getcmdtype()==':' && getcmdpos()==1 ? 'up' : 'w')<CR>

Cuando escriba :w, notará que se reemplazará :upcuando presione Intro.

jecxjo
fuente
14

No directamente (es decir, el comportamiento de :wno se puede cambiar), pero puede aprender a usar en :uplugar de :w. Hace exactamente lo que quieres.

lcd047
fuente
3
Solo permítanme agregar: uso un mapeo de teclas favorito para guardar, y me he limitado a él en :updatelugar de :writeobtener el requisito del póster original.
Giovanni Maggiorani