Ric*_*ich 29
我可以想到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的答案,或者只是删除带有手动编辑命令的行),保存文件,然后退出vim,
在另一个文本编辑器中编辑.viminfo文件,只需删除您不想要的所有内容,
Joh*_*web 11
打开.viminfo文件.
以下命令将删除所有既不是空白,注释也不是搜索历史记录的行:
:v/^\([#/?]\|$\)/d
Run Code Online (Sandbox Code Playgroud)
@ Rich的答案将帮助您防止这些线路被重新填充.
您可以使用vim自己来修改文件,如果您按照以下方式调用它,您的更改将保持不变:
$ vim -i NONE ~/.viminfo
Run Code Online (Sandbox Code Playgroud)
启动vim与-i选项设置它viminfo使用该会话文件.特殊值NONE意味着根本不保存任何内容.这对于编辑其他自动生成文件或敏感数据非常方便.
来自man vim:
-i {viminfo}
当使用的viminfo文件的功能,这个选项设置 文件名
,而不是默认使用,~/.viminfo.这也可以通过给出名称来
跳过viminfo文件的使用NONE.
小智 3
VIM 似乎没有用于这项工作的内置命令。但您可以使用“grep”在 shell 中完成此操作。例如,以下命令将清除命令行历史记录、文件标记、跳转列表:
bash $ grep -v "^[:'-]" .viminfo > .viminfo_clear
bash $ cp .viminfo_clear .viminfo
Run Code Online (Sandbox Code Playgroud)
如果你打开.viminfo,你会发现命令行历史记录以“:”开头,文件标记以“'”开头,跳转列表以“-”开头。