Vi y Vim, como todos saben, tienen muchos sinónimos. Hay tres formas que conozco para guardar el archivo y salir de Vim y Vi. Estos son : WQ <cr> , : x <cr> y ZZ . He oído que estos son diferentes de alguna manera.
¿Hay alguna diferencia práctica entre usar:
:x<cr>
:wq<cr>
o
ZZ
guardar el archivo y salir de Vim y Vi?
save
filesystem
quit
original-vi
wefwefa3
fuente
fuente
ZZ
(oZQ
) es más corto y más fácil de escribir ...:help :wq
,:help ZZ
,:help :x
. Está justo ahí en los documentos.Respuestas:
De la documentación de Vim,
:x
yZZ
son equivalentes; solo guardan el archivo si se ha modificado, luego salen de Vim::wq
por otro lado escribe el archivo y sale de Vim (asumiendo los permisos adecuados).fuente
Como Akshay señaló, la documentación de Vim explica, que
:x
yZZ
son equivalentes y sólo guardar un archivo si el buffer asociado se ha cambiado. Mientras que:wq
guarda el búfer en el archivo correspondiente, incluso si no ha cambiado.En ambos casos, el contenido del búfer se guardará en el disco. Obviamente el resultado es el mismo, entonces, ¿por qué molestarse, verdad? Pero espera ... Hay una diferencia sutil, pero no irrelevante.
Si sale de Vim vía
:x
y no ha habido cambios en el búfer, no habrá cambios en la hora de modificación de ese archivo. Por otro lado, si sale a través de:wq
, el tiempo de modificación cambiará, ya que el archivo se reescribe técnicamente (se guarda nuevamente).Esto puede tener algún impacto en ciertas situaciones. Por ejemplo, un proceso de copia de seguridad que depende del tiempo de modificación, podría almacenar este archivo (y potencialmente enviarlo a través de la red) incluso si no se ha incluido información adicional. O algún proceso de monitoreo podría hacer sonar una alarma si detecta que (para ello) el archivo ha cambiado ...
Editar: Olvidé mencionar que para dejar un búfer / archivo modificado sin cambiar el tiempo de modificación, a
:q
(sin elw
) también funcionará.fuente