題 VIM:將文件另存為不同的文件名,但保留:w作為當前文件名


作為一種窮人版本控制,我需要保存一個文件 someFile.c 如 someOtherFile.c, 但我想要 :w 繼續保存為 someFile.c。這可能嗎?

環境是Windows XP SP3,但我在這里安裝了Cygwin,所以如果有幫助我可以在Cygwin實例中完成。

謝謝。


4
2018-04-18 22:22


起源


可能的跨站點副本: stackoverflow.com/questions/4980168/... - Ciro Santilli 新疆改造中心 六四事件 法轮功


答案:


是。如果你使用 :w someOtherFile.c 它會寫入該文件,但保持編輯狀態 someFile.c

我的回答也用於鏈接到Stack Overflow答案,該答案提供了有用的VIM命令備忘單的鏈接。該答案後來被刪除為該網站的偏離主題。

以下是該答案的原始內容,由用戶編寫 大衛


這是我在當天收到的一些書籤:

Linux命令cheatsheets:


15
2018-04-18 22:51



我無法相信這是默認行為!謝謝! - dotancohen
不用擔心......實際上我也沒有。我已經做了 vim test,進入'你好',然後 :w test2,附加'世界'和 :w 再次。文件'test'包含“hello world”,'test2'包含“hello”。 - paddy


你可以在你的〜/ .vimrc中放一個這樣的自動命令:

:au! BufWrite * execute "w" expand("%") . strftime(".%y%m%d.%H%M%S")

這會將當前文件的副本保存在同名文件中,但每次保存原始文件時都會附加當前日期和時間。這可能比您想要的更多,但您可以修改它以僅使用某些文件類型,或將您的副本放在特殊目錄中,等等。

我曾經使用類似的東西來備份某些經常更改的配置文件。


3
2018-04-18 22:52



我試圖將其映射到<F2>但它沒有保存。你能看到問題嗎? noremap <F2> execute "w" expand("%") . strftime(".%y%m%d.%H%M%S") 謝謝你的精彩提示。 - dotancohen
我沒有嘗試你的映射,但我首先想到的是你錯過了 : 在...前面 execute。自動命令的命令參數是ex命令,所以沒有 : 是必要的,但映射的rhs只是一系列鍵,所以a : 從正常模式開始ex模式是必要的。此外,您可能希望結束您的映射 <CR> 這樣您每次使用時都不必按Enter鍵。別客氣。 - garyjohn