2009-07-08 44 views
35

我不知道爲什麼,但似乎無論我如何退出Vim,它總是會將交換文件留在後面。因此,無論何時我再次打開該文件,我都會對現有的交換文件產生惱人的錯誤。每次我必須選擇「刪除」。我真的希望這會停止。有什麼我可以放在我的.vimrc告訴它,「只要刪除交換文件,如果它存在,讓我一個人?」Vim:停止「現有交換文件」警告

+12

你是如何放棄VIM的?它不應該留下交換文件,所以不是掩蓋問題,我們最好修復它 – 2009-07-08 13:44:20

+1

您是否使用Unix操作系統並且擊中了Ctrl-Z?如果是這樣,你做錯了。請具體說明「退出Vim」的含義。 – 2009-07-08 14:22:08

+0

也許你意外地崩潰了vim文件,而作爲root用戶,現在vim無法刪除它?也許它是隻讀的? – 2009-07-08 14:41:01

回答

10

請參閱VIM recovery手冊條目。你不應該正常看到這些文件,除非

  1. 您的VIM實例崩潰
  2. 你在不經意間運行 VIM情況下對同一文件

我經常做後者,在兩個終端中運行2個VIM,而不是相同的文件,但沒有意識到它。 '交換文件'消息是我正在做這件事的指標。

也許你已經有一個VIM會話正在運行(後臺?),你忘記了?

11

Mac OS上的Command-Q退出終端窗口,並崩潰窗口中運行的每個應用程序。

要退出VIM,您必須使用普通的VIM命令,如:q

0

把這個放在你的vimrc文件中。

if has("win32") || has("win64") 
    set directory=$TMP 
else 
    set directory=/tmp 
end 
32

.vimrc附加:

set shortmess+=A 

從文檔:help shortmess

A don't give the "ATTENTION" message when an existing swap file is found.

1

這有可能是你在路徑的一些目錄到當前目錄沒有足夠的權限。它發生在我身上。

2

當使用vim編輯器打開文件時,相應的交換文件將以.swp擴展名創建。在系統崩潰的情況下編輯文件時,創建的交換文件不會被刪除。因爲這個原因,當你打開同一個文件時,消息顯示爲「.filename.c.swp」已經存在。爲了避免這種情況,我們必須在開始工作之前刪除所有交換文件。

rm filename.c.swp 

文件的名稱。延期。 swp

8

有一個插件可以「爲Vim交換文件自動執行正確的操作」:vim-autoswap

從主頁:

與交換文件的處理是煩人。大多數情況下,您必須處理交換文件,因爲您在另一個窗口中打開了相同的文件,或者它是之前崩潰留下的交換文件。

這個插件爲你做,你會在這種情況下做什麼:

  • 是文件已經在其他一些窗口中的另一個Vim會話打開?
  • 如果是這樣,請切換到我們正在編輯該文件的窗口。
  • 否則,如果交換文件比文件本身更早,那就把它除掉。
  • 否則,打開文件只讀,以便我們可以看看它並可以保存它。