swp檔案詳解

2021-09-01 05:39:29 字數 1338 閱讀 9802

swp介紹與利用

swp檔案介紹

vim中的swp即swap檔案,在編輯檔案時產生,它是隱藏檔案。這個檔案是乙個臨時交換檔案,用來備份緩衝區中的內容。如果原檔名是data,那麼swp檔名就是.data.swp。如果檔案正常退出,則此檔案自動刪除。需要注意的是如果你並沒有對檔案進行修改,而只是讀取檔案,是不會產生swp檔案的。

swp檔案產生

以下兩種情況不會刪除swp檔案:

vim非正常退出(比如直接關閉終端或者電腦斷電或者你使用了ctrl+zz;vim編輯器要正常退出可以使用shift-zz);這種情況下,除非手動刪除swp檔案(也可以在vim提示時刪除),否則它會一直存在。

多個程式同時編輯乙個檔案;為了避免同乙個檔案產生兩個不同的版本(vim中的原話),還是建議選擇readonly為好。

非正常退出時,並不會覆蓋舊的交換檔案,而是會重新生成新的交換檔案。而原來的檔案中並不會有這次的修改,檔案內容還是和開啟時一樣。例如,第一次產生的交換檔案名為「.data.swp」;再次意外退出後,將會產生名為「.data.swo」的交換檔案;而第三次產生的交換檔案則為「.data.swn」;依此類推。

當你強行關閉vim時,vim自動生成乙個swp檔案,當你再次用vim開啟檔案時,會首先出現一些提示。這裡我們當然可以用r鍵恢復。

swp檔案設定

使用以下命令來檢視當前目錄下的所有swp檔案

vim -r

使用以下命令來恢復檔案,這樣上次意外退出沒有儲存的修改,就會覆蓋檔案。然後用rm 命令刪除交換檔案。不然每一次編輯時總是有這個提示。

vim -r filename

rm ..swp

如果你不想vim產生交換檔案,可以使用如下命令禁止

:set noswapfile

也可以使用以下命令,設定生成交換檔案:

:set swapfile

根據預設設定,交換檔案會每隔4000毫秒(4秒)或者200個字元儲存一次。我們可以使用以下命令,修改儲存交換檔案的頻率:

:set updatetime=2000

:set updatecount=400

注意,如果我們將updatecount的值為0,那麼就將不儲存交換檔案。

vim預設在當前檔案所處的目錄下產生交換檔案,我們可以通過directory選項來更改交換檔案產生的目錄。例如,使用以下命令將交換檔案存放在/tmp目錄下:

:set directory=/tmp

注意,如果我們將交換檔案儲存在乙個指定目錄,那麼當編輯不同目錄下相同名稱的檔案時,就會產生命名衝突。我們可以將directory選項設定為乙個以逗號分隔的目錄列表,並將當前目錄(.)設為目錄列表的第乙個選項,這樣交換檔案首先會被存放在當前目錄下。

Linux修改檔案產生 swp檔案

我們用vim編輯乙個檔案時,由於某種原因導致異常退出時,再次進入就會報出如下資訊 遇到這個問題之前很頭大,不知道如何去解決,下邊有選項,無論選擇哪個選項,下一次進入時也會出現同樣的問題。原因是檔案異常退出時,linux會針對這個檔案生成乙個.swp檔案,用於儲存資料。下次再開啟這個檔案就會提示,這個...

vi下刪除swp檔案

使用vi編輯器編輯檔案時,經常會由於非正常退出而產生乙個swp檔案,以後每次進入時都會提示,非常麻煩。現將網上蒐集的解決方法陳列於此 2.非常規退出時。通常最後的少量改動無法恢復.vim會在你連續4秒不鍵入內容時跟磁碟同步一次,或者是連續鍵入了200個字元之後.這可以通過 updatetime 和 ...

VI的高亮和SWP檔案

vi的高亮和swp檔案 問題 使用root使用者時vi沒有高亮,但是在一般使用者下就可以 解決辦法 在 root bashrc中新增alias vi vim 按照這個方法,我覺得出現的問題是在root下使用的是vi而不是vim,但是用 ls a which vi 查詢過以後,輸出的結果是 alias...