Berühren Sie die Datei beim Schreiben nicht, wenn die Datei nicht geändert wurde


15

Gelegentlich tippe ich abwesend, :wwenn ich etwas lese. Dies führt zu einer Änderung der Änderungszeit der Datei und manchmal dazu, dass mein Build-System einen wesentlichen Teil eines Projekts unnötigerweise neu erstellt.

Gibt es eine Möglichkeit, vim so einzustellen, dass es einfach nichts tut, wenn ich versuche, eine Datei zu schreiben, die nicht geändert wurde?

Antworten:


15

Erweitern Sie die Antwort von @ lcd047, die Sie cabbrevzum Ändern verwenden könnenw

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

Wenn Sie tippen, werden :wSie feststellen, dass es durch ersetzt wird, :upwenn Sie die Eingabetaste drücken.


14

Nicht direkt (das heißt, das Verhalten von :wkann nicht geändert werden), aber Sie können lernen, :upstatt zu verwenden :w. Es macht genau das, was Sie wollen.


3
Lassen Sie mich nur hinzufügen: Ich verwende zum Speichern eine bevorzugte Tastaturbelegung und bin daran gebunden, :updateanstatt :writedie Anforderung für das Original-Poster zu erhalten.
Giovanni Maggiorani
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.