如何使Vim不同的文件具有不同的历史记录?

时间:2019-01-28 19:31:47

标签: vim history vim-plugin

我使用:history /获取搜索记录,当我切换到另一个文件时,结果搜索记录将叠加在不同的文件上。如何使不同的文档具有不同的历史记录

1 个答案:

答案 0 :(得分:1)

Vim的命令行历史记录是全局的。技术原因是,历史记录存储在:help viminfo-file的平面列表中。同样从逻辑上讲,将某些命令(例如:bufdo)分配给单个缓冲区也没有意义。

因此,您没有一个简单的选项可以设置,以使搜索历史位于缓冲区本地。有了足够的决心,您可以为此实现一个插件。我看到两种可能的方法:

  • 您可以通过:help :rviminfo:wviminfo将每个缓冲区的一个 viminfo 文件(用于存储历史记录)复用到全局历史记录中。使用:autocmd相对容易,您可以继续使用默认(全局):history和相关命令。但是,许多其他设置(标记,跳转,先前的文件等)也存储在viminfo中,并且这些设置也将有效地本地化(除非您以某种方式换掉了搜索历史部分)。
  • 您可以使用搜索命令,并定期将全局搜索历史记录(通过:help histget()同步到本地缓冲区中),然后提供自己的搜索调用命令,例如通过创建一个显示本地搜索的暂存缓冲区,就像内置q/一样。这可能会带来更好的可用性,但是要重新创建自己的历史记录命令会花费更多的精力。