Как Акшай отметил, документация Vim объясняет, что :xи ZZэквивалентны , и только сохранить файл , если связанный буфер был изменен. Принимая во внимание, :wqчто буфер сохраняет в соответствующий файл, даже если он не изменился.
В обоих случаях содержимое буфера будет сохранено на диск. Очевидно, что результат один и тот же, так зачем беспокоиться, верно? Но подождите ... Есть тонкая, но не несущественная разница.
Если вы выйдете из Vim через :xбуфер, и в буфере не было никаких изменений, время изменения этого файла не изменится. С другой стороны, если вы выйдете через :wq, время изменения изменится, так как файл технически переписан (сохранен снова).
Это может иметь некоторое влияние в определенных ситуациях. Например, процесс резервного копирования, который зависит от времени модификации, может сохранить этот файл (и, возможно, отправить его по сети), даже если дополнительная информация не была включена. Или какой-то процесс мониторинга может подать сигнал тревоги, если обнаружит, что (для него) файл был изменен ...
Изменить: я забыл упомянуть, чтобы оставить измененный буфер / файл без изменения времени модификации, :q(без w) будет работать тоже.