Nie dotykaj pliku podczas zapisu, jeśli plik nie został zmieniony

15

Czasami piszę bezmyślnie, :wgdy coś czytam. Powoduje to zmianę czasu modyfikacji pliku i czasami powoduje, że mój system kompilacji niepotrzebnie odbudowuje znaczną część projektu.

Czy istnieje sposób na ustawienie vima, aby po prostu nic nie robił, jeśli spróbuję napisać plik, który nie został zmieniony?

Prakseolityczny
źródło

Odpowiedzi:

15

Rozszerzając odpowiedź @ lcd047, której możesz użyć cabbrevdo modyfikacjiw

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

Podczas pisania :wzauważysz, że zostanie zastąpiony przez :upnaciśnięcie klawisza Return.

jecxjo
źródło
14

Nie bezpośrednio (to znaczy :wnie można zmienić zachowania), ale możesz nauczyć się używać :upzamiast :w. Robi dokładnie to, co chcesz.

lcd047
źródło
3
Pozwólcie, że dodam: używam ulubionego mapowania klawiszy do zapisywania i związałem się z nim :updatezamiast :writeuzyskać wymaganie dotyczące oryginalnego plakatu.
Giovanni Maggiorani