Як Акшай зазначив, документація Vim пояснює, що :x
і ZZ
еквівалентні , і тільки зберегти файл , якщо пов'язаний буфер був змінений. В той :wq
час як буфер зберігає відповідний файл, навіть якщо він не змінюється.
В обох випадках вміст буфера буде збережено на диску. Очевидно, результат однаковий, тож навіщо турбуватись, правда? Але зачекайте ... Є тонка, але не безрелевантна різниця.
Якщо ви виходите з Vim через, :x
а буфер не змінився, час модифікації цього файлу не зміниться. З іншого боку, якщо ви вийдете з програми :wq
, час модифікації зміниться, оскільки файл буде технічно переписаний (знову збережений).
Це може мати певний вплив у певних ситуаціях. Наприклад, процес резервного копіювання, який залежить від часу модифікації, може зберігати цей файл (і, можливо, надсилати його по мережі), навіть якщо додаткова інформація не була включена. Або якийсь процес моніторингу може викликати сигнал тривоги, якщо він виявить, що (для нього) файл був змінений ...
Редагувати: я забув згадати, для того, щоб залишити модифікований буфер / файл, не змінюючи час модифікації, a :q
(без w
) теж буде працювати.