vim編輯器中:wq wq! x q q!的詳細區別

_Elysia發表於2024-06-22

下面的命令只是在vi編輯命令中使用

:wq:表示儲存退出
:wq!:表示強制儲存退出
:x:表示儲存退出
:q:在vim中表示退出
:q!:表示強制不儲存退出,不對檔案進行儲存

:wq:wq!的區別如下:

有些檔案設定了只讀,一般不是修改檔案的,但是如果你是檔案的owner或者root的話,透過:wq!還是能儲存檔案退出

如果檔案設定為只讀了的話,用 :wq命令是不能儲存並退出的,但是最高許可權者可透過wq!來進行檔案的儲存並退出檔案。

已設定選項 ‘readonly’ (請加 ! 強制執行)

檔案所有者透過 wq! 可以儲存只讀檔案

!是強制執行
如果不帶!碰上只讀檔案,會給提示會是隻讀檔案,帶了!忽略只讀強制寫入

:x:wq的區別如下:

(1) :wq 強制性寫入檔案並退出(存檔並退出 write and quite)。即使檔案沒有被修改也強制寫入,並更新檔案的修改時間。

(2) :x 寫入檔案並退出。僅當檔案被修改時才寫入,並更新檔案修改時間;否則不會更新檔案修改時間。

這兩者一般情況下沒什麼不一樣,但是在程式設計方面,對編輯原始檔可能會產生重要影響。因為檔案即使沒有修改,":wq" 強制更新檔案的修改時間,

這樣會讓 make 編譯整個專案時以為檔案被修改過了,然後就得重新編譯連結生成可執行檔案。這可能會產生讓人誤解的後果,當然也產生了不必要的系統資源花銷。不過像是版本控制的軟體一般首選還是比較檔案內容,修改時間一般不加以理會。

:q:q!的區別如下:

如果檔案有修改,:q 會提示有修改,是否退出,輸入y退出
如果檔案有修改,:q! 會強制直接退出,並且不對檔案進行保留

相關文章