2010-05-12 51 views
33

如何從我的.viminfo文件中清除某些條件?從.viminfo文件中清除特定條件

我要清除的命令行歷史記錄,文件標記中,跳轉列表等

然而,我想保持搜索字符串歷史。

有沒有辦法做到這一點?

+7

這應該遷移到SuperUser.com,因爲它不是直接關於編程。 – Johnsyweb 2010-05-24 07:27:22

+4

如果可以,我會投票重新開放。這正是我現在需要知道的編程需求。見http://meta.stackexchange.com/questions/25925/vim-questions-do-they-belong-to-stack-overflow-or-super-user – 2013-08-14 18:15:51

+4

我不認爲這是題外話題。編輯器vim是「程序員常用的軟件工具」(因此在範圍內)。它當然不是一個普通的文本編輯器,可供普通用戶使用。 – 2013-10-05 22:20:34

回答

3

VIM似乎沒有這項工作的內置命令。但是你可以用「grep」在shell中完成。 例如,下面的命令將清除命令行歷史,文件標記,跳轉列表:

bash $ grep -v "^[:'-]" .viminfo > .viminfo_clear 
bash $ cp .viminfo_clear .viminfo 

如果打開.viminfo,你會發現,在命令行歷史開始「:」,文件標記以「'」開頭,跳轉列表以「 - 」開始。

+0

eeeeeeeeeeeeee ...不好回答。 爲什麼你正在創建不必要的文件,你的答案是錯誤的。 – ungalnanban 2010-05-12 13:04:54

23

我可以想到3種方法來做到這一點。

1.自動

  1. 運行的Vim,

  2. 類型::set viminfo='0,:0,<0,@0,f0

    • '0意味着商標將不會被保存
    • :0意味着,命令行歷史不被保存
    • <0意味着寄存器不會被保存
    • @0意味着輸入行歷史不會被保存
    • f0意味着商標將不會被保存
    • 沒有%意味着緩衝區列表將不會被保存
    • 沒有/意味着搜索歷史保存

    這些選項在Vim中是正確的7.2,但在其他版本中可能會有所不同。有關viminfo字符串格式的更多詳細信息,請運行:h 'viminfo'

  3. 退出Vim。它會保存一個新版本的.viminfo文件,只包含你想保留的信息。

2.手動

  1. 打開Vim的.viminfo文件,

  2. :set viminfo=到信息的自動保存關閉到.viminfo文件。如果你不這樣做,當你退出時,Vim將覆蓋你所做的所有更改,

  3. 刪除你不想要的所有東西(也許通過使用Johnsyweb's answer,或者只是刪除手動編輯命令的行),保存文件,並退出VIM,

3.在不同的編輯器

編輯在不同文本編輯器中.viminfo文件,只需刪除你不想要的一切,

10

打開.viminfo文件。

以下命令將刪除既不是空白,註釋的所有行,也沒有紀錄:

:v/^\([#/?]\|$\)/d 

@Rich's answer將幫助您防止被重新填充這些行。

2

複製有用部分並刪除.viminfo,然後打開/關閉Vim。它會重新生成.viminfo。然後複製有用的部分。

6

您可以使用vim本身來修改該文件,如果你調用它你這樣的改變將留在原地:

$ vim -i NONE ~/.viminfo 

開始vim-i選項設置viminfo文件中使用該會話其中。特殊值NONE意味着什麼都沒有保存。這對於編輯其他自動生成文件或敏感數據可能非常方便。

man vim

-i {viminfo}
當使用的viminfo文件的功能,這個選項設置,而不是默認的~/.viminfo
使用。這也可以用於
跳過使用viminfo文件,通過給名稱NONE