清除.viminfo文件中的某些条件

时间:2010-05-12 07:22:25

标签: vim

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

我想清除命令行历史记录,文件标记,跳转列表等。

但是 ,我想保留搜索字符串的历史记录。

有没有办法做到这一点?

5 个答案:

答案 0 :(得分:27)

我可以想到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文件的新版本,仅包含您要保留的信息。

  4. 2。手动

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

    2. :set viminfo=关闭自动保存信息到.viminfo文件。如果您不这样做,Vim将在您退出时覆盖您的所有更改,

    3. 删除您不想要的所有内容(可能使用Johnsyweb's answer,或只删除带有手动编辑命令的行),保存文件,然后退出vim,

    4. 3。在另一个编辑器中

      不同的文本编辑器中编辑.viminfo文件,只需删除您不想要的所有内容,

答案 1 :(得分:10)

打开.viminfo文件。

以下命令将删除所有既不是空白,也不是评论和搜索记录的行:

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

@Rich's answer将帮助您防止这些行被重新填充。

答案 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。然后复制有用的部分。