如何告诉VIM将viminfo文件存储在其他地方?

时间:2011-06-09 00:35:10

标签: vim

是否有可能告诉vim将其viminfo文件保存在其他地方? 例如在.vim文件夹中

6 个答案:

答案 0 :(得分:21)

尝试将set viminfo+=n~/.vim/viminfo添加到~/.vimrc文件中。来自:help 'viminfo'

    n       Name of the viminfo file.  The name must immediately follow
            the 'n'.  Must be the last one!  If the "-i" argument was
            given when starting Vim, that file name overrides the one
            given here with 'viminfo'.  Environment variables are expanded
            when opening the file, not when setting the option.

答案 1 :(得分:5)

set viminfo='1000,nc:\\users\\abcdef\\_viminfo

这适用于Windows 7。

答案 2 :(得分:4)

我遇到了类似的问题,但对我的主文件夹没有写入权限(因此无法创建~/.vimrc)。

我通过修改(通过管理员)C:\Program Files\VIM中的_vimrc以包含该行来解决它:

let $HOME = $USERPROFILE

我把它放在文件的开头,效果很好。以防万一有人遇到这个问题且this answer无效。

答案 3 :(得分:0)

<强> TL; DR

这似乎是vim中的一个错误,其中set nocompatible不是idempotent,并且不会跟随principle of least astonishment

作为解决方法,要么:

  1. 确保set nocompatible(或等效的set nocp)仅一次位于{{1>的顶部 }}

  2. 如果已设置,请不要再次设置:

    vimrc
  3. 解释和错误说明

    来自:help compatible(empahsis mine):

      

    这是一种特殊的选项,因为当它被设置或重置时,   其他选项也会因副作用而改变。 小心:设置或   重置此选项可能会产生很多意想不到的影响:映射   以另一种方式解释,撤消行为不同,等等。如果你   在你的vimrc文件中设置这个选项,你应该把它放在   一开始。

    请注意,副作用中列出的if &compatible | set nocompatible | endif " Avoid side effects if `nocp` already set ,但以下几行清楚地显示了对&viminfo的副作用:

    &viminfo

    输出:

    set nocompatible
    set viminfo+=nWatch-my-viminfo-file-location-be-ignored
    echom &viminfo
    set nocompatible " do side effects even though nocomptible is already set
    echom 'After 2nd "set nocompatible":'
    echom &viminfo
    

    '100,<50,s10,h,nWatch-my-viminfo-file-location-be-ignored After 2nd "set nocompatible": '100,<50,s10,h

      

    vim --version | head -1

    解决

    我已就这个提出了两个GitHub问题:

    另见Vi StackExchange的问题:Can't move viminfo file - &viminfo reverts upon loading vim我在看到这个问题之前提出了这个问题。

答案 4 :(得分:0)

.vimrc中的设置顺序会影响使用:set viminfo。 viminfo的设置应该在设置nocompatible之后。重新排序我的.vimrc后,上面的解决方案让viminfo文件位于.vim目录中,对我有用。

答案 5 :(得分:0)

我知道它现在已经有一段时间了,但我只是为未来的读者提到这一点。

我在尝试更改 vimrc 中 viminfo 文件的位置时遇到了同样的问题。最后设置 viminfofile 选项的值对我有用。

在我的 vimrc 中添加以下内容:

set viminfofile=D:\vim\viminfo

它适用于带有 vim 8.2 的 Windows