Ви и Вим, как вы все знаете, имеют много синонимов. Есть три способа сохранить файл и выйти из Vim и Vi. Это : WQ <CR> , : х <CR> и ZZ . Я слышал, что они в некотором роде разные.
Есть ли практические различия между использованием:
:x<cr>
:wq<cr>
или
ZZ
сохранить файл и выйти из Vim и Vi?
save
filesystem
quit
original-vi
wefwefa3
источник
источник
ZZ
(илиZQ
) короче и легче набирать:help :wq
,:help ZZ
,:help :x
. Это прямо в документах.Ответы:
Из документации Vim,
:x
иZZ
эквивалентны; они сохраняют файл, только если он был изменен, а затем выходят из Vim::wq
с другой стороны, записывает файл и выходит из Vim (при условии наличия соответствующих разрешений).источник
Как Акшай отметил, документация Vim объясняет, что
:x
иZZ
эквивалентны , и только сохранить файл , если связанный буфер был изменен. Принимая во внимание,:wq
что буфер сохраняет в соответствующий файл, даже если он не изменился.В обоих случаях содержимое буфера будет сохранено на диск. Очевидно, что результат один и тот же, так зачем беспокоиться, верно? Но подождите ... Есть тонкая, но не несущественная разница.
Если вы выйдете из Vim через
:x
буфер, и в буфере не было никаких изменений, время изменения этого файла не изменится. С другой стороны, если вы выйдете через:wq
, время изменения изменится, так как файл технически переписан (сохранен снова).Это может иметь некоторое влияние в определенных ситуациях. Например, процесс резервного копирования, который зависит от времени модификации, может сохранить этот файл (и, возможно, отправить его по сети), даже если дополнительная информация не была включена. Или какой-то процесс мониторинга может подать сигнал тревоги, если обнаружит, что (для него) файл был изменен ...
Изменить: я забыл упомянуть, чтобы оставить измененный буфер / файл без изменения времени модификации,
:q
(безw
) будет работать тоже.источник