vi是Unix/Linux系統最常用的編輯器之一,我習慣使用":x"命令來保存文件並退出,不願意使用":wq"命令是因為它得多敲一個字母。
但是,今天我才知道":x"和":wq"的真正區別,如下:
:wq
強制性
寫入文件並退出。
即使文件沒有被修改也強制寫入,並更新文件的修改時間。
:x
寫入文件並退出。
僅當文件被修改時才寫入,並更新文件修改時間,否則不會更新文件修改時間。
這兩者一般情況下沒什么不一樣,
但是在編程方面,對編輯源文件可能會產生重要影響
。因為文件即使沒有修改,":wq"強制更新文件的修改時間,這樣會讓make編譯整個項目時以為文件被修改過了,然后就得重新編譯鏈接生成可執行文件。這可能會產生讓人誤解的后果,當然也產生了不必要的系統資源花銷。