簡體   English   中英

從.viminfo文件中清除某些條件

[英]Clear certain criteria from .viminfo file

如何清除.viminfo文件中的某些條件?

我想清除命令行歷史記錄,文件標記,跳轉列表等。

但是 ,我想保留搜索字符串的歷史記錄。

有什么辦法嗎?

我可以想到3種方法。

1.自動

  1. 運行Vim

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

    • '0表示不會保存標記
    • :0表示將不保存命令行歷史記錄
    • <0表示將不保存寄存器
    • @0表示將不保存輸入行歷史記錄
    • f0表示不會保存標記
    • no %表示將不保存緩沖區列表
    • /表示保存搜索記錄

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

  3. 退出Vim。 它將保存.viminfo文件的新版本,其中僅包含您要保留的信息。

2.手動

  1. 在vim中打開.viminfo文件,

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

  3. 刪除所有不需要的內容(也許使用Johnsyweb的答案 ,或者僅通過使用手動編輯命令刪除行),保存文件並退出vim,

3.在其他編輯器中

其他文本編輯器中編輯.viminfo文件,只需刪除不需要的所有內容,

打開.viminfo文件。

以下命令將刪除所有不為空,注釋或搜索歷史的行:

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

@Rich的答案將幫助您防止重新填充這些行。

您可以使用vim本身來修改文件,並且如果像這樣調用它, vim的更改將保持不變:

$ vim -i NONE ~/.viminfo

使用-i選項啟動vim可以設置用於該會話的viminfo文件。 特殊值NONE表示什么都不保存。 這對於編輯其他自動生成的文件或敏感數據非常方便。

來自man vim

-i {viminfo}
啟用使用viminfo文件時,此選項設置文件名
使用,而不是默認的~/.viminfo 這也可以用來
通過命名為NONE ,跳過viminfo文件的使用。

VIM似乎沒有用於此作業的內置命令。 但是您可以使用“ grep”在shell中進行操作。 例如,以下命令將清除命令行歷史記錄,文件標記,跳轉列表:

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

如果打開.viminfo,您將發現命令行歷史記錄以“:”開頭,文件標記以“'”開頭,跳轉列表以“-”開頭。

復制有用的部分並刪除.viminfo,然后打開/關閉Vim。 它將重新生成.viminfo。 然后將有用的部分復制回去。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM