vim是Unix/Linux系统最常用的编辑器之一,在保存文件时,我通常选择”:wq“,因为最开始学习vim的时候,就只记住了几个常用的命令;也没有细究命令的含义。

但是,最近我在编译代码时发现,在没有修改源文件的情况下,仅仅使用”:wq“命令保存文件,源文件会重新编译。这是因为文件即使没有修改,":wq"强制更新文件的修改时间,这样会让 make编译整个项目时以为文件被修改过了,然后就得重新编译链接生成可执行文件。这可能会产生让人误解的后果,当然也产生了不必要的系统资源花销。

":x"和":wq"的真正区别,如下:
        :wq   强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。
        :x    写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。

05-11 18:27