是否有可能告诉vim将其viminfo文件保存在其他地方? 例如在.vim文件夹中
答案 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。
作为解决方法,要么:
确保set nocompatible
(或等效的set nocp
)仅一次,位于{{1>的顶部 }}
如果已设置,请不要再次设置:
vimrc
解释和错误说明
来自: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问题:
set nocompatible
not idempotent - setting produces side effects when already set 另见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