繁体   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