如何清除.viminfo文件中的某些条件?
我想清除命令行历史记录,文件标记,跳转列表等。
但是 ,我想保留搜索字符串的历史记录。
有没有办法做到这一点?
答案 0 :(得分:27)
我可以想到3种方法。
运行Vim,
输入::set viminfo='0,:0,<0,@0,f0
'0
表示不会保存标记:0
表示不会保存命令行历史记录<0
表示不会保存寄存器@0
表示不会保存输入行历史记录f0
表示不会保存标记%
表示不会保存缓冲区列表/
表示搜索记录将保存这些选项在Vim 7.2中是正确的,但在其他版本中可能会有所不同。有关viminfo字符串格式的更多详细信息,请运行:h 'viminfo'
退出Vim。它将保存.viminfo文件的新版本,仅包含您要保留的信息。
在vim中打开.viminfo文件,
:set viminfo=
关闭自动保存信息到.viminfo文件。如果您不这样做,Vim将在您退出时覆盖您的所有更改,
删除您不想要的所有内容(可能使用Johnsyweb's answer,或只删除带有手动编辑命令的行),保存文件,然后退出vim,
在不同的文本编辑器中编辑.viminfo文件,只需删除您不想要的所有内容,
答案 1 :(得分:10)
答案 2 :(得分:6)
你可以使用vim
本身修改文件,如果你这样调用它,你的更改将保持不变:
$ vim -i NONE ~/.viminfo
使用vim
选项启动-i
设置用于该会话的viminfo
个文件。特殊值NONE
表示根本没有保存任何内容。这对于编辑其他自动生成文件或敏感数据非常方便。
来自man vim
:
-i {viminfo}
使用 viminfo 文件时,此选项设置文件名
使用,而不是默认的~/.viminfo
。这也可以用于 通过提供名称NONE
来跳过使用 viminfo 文件。
答案 3 :(得分:3)
VIM似乎没有这项工作的内置命令。但是你可以在带有“grep”的shell中完成它。 例如,以下命令将清除命令行历史记录,文件标记,跳转列表:
bash $ grep -v "^[:'-]" .viminfo > .viminfo_clear
bash $ cp .viminfo_clear .viminfo
如果打开.viminfo,您会发现命令行历史记录以“:”开头,文件标记以“'”开头,跳转列表以“ - ”开头。
答案 4 :(得分:2)
复制有用的部分并删除.viminfo,然后打开/关闭Vim。它将重生.viminfo。然后复制有用的部分。