Не трогайте файл при записи, если файл не был изменен


15

Иногда я рассеянно печатаю, :wкогда читаю что-то. Это приводит к изменению времени изменения файла и иногда приводит к тому, что моя система сборки излишне перестраивает значительную часть проекта.

Есть ли способ настроить vim так, чтобы он ничего не делал, если я пытаюсь написать файл, и он не был изменен?

Ответы:


15

Расширяя ответ @ lcd047, вы можете cabbrevизменитьw

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

Когда вы печатаете, :wвы заметите, что он будет заменен, :upкогда вы нажмете клавишу возврата.


14

Не напрямую (то есть поведение :wне может быть изменено), но вы можете научиться использовать :upвместо :w. Это именно то, что вы хотите.


3
Просто позвольте мне добавить: я использую любимую раскладку клавиш для сохранения, и я связался с ней :updateвместо того, :writeчтобы получить требование «Оригинальный плакат».
Джованни Маджорани
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.