在 gVim 中设置 viminfo 路径以实现可移植性(Windows)

在 gVim 中设置 viminfo 路径以实现可移植性(Windows)

我正在尝试使我的 gVim 安装尽可能便携,因此我想将文件放在目录_viminfo$VIM而不是$HOME。 我对破解 vimrc 配置还很陌生,但这是我一直在尝试的:

let viminfopath=$VIM."\\_viminfo"
execute "set viminfo='1000,n".escape(viminfopath, ' ')

" Some other portability stuff.
set nobackup
set nowritebackup
if has("win32") || has("win64")
    set directory=$TMP
else
    set directory=~/tmp
end

但这似乎不起作用;有人有什么建议吗?

谢谢!

编辑:运行:echo viminfopath结果为F:\Programs\Vim\_viminfo,所以路径本身至少是有效的。一定是execute操作不起作用。

答案1

您可以使用amix 的建议:(我知道MySys可以用不同且更好的方法来实现这个方法,但我想你可以明白这个想法)

fun! MySys()
  return "windows"
endfun

set runtimepath=~/vim_local,$VIMRUNTIME
source ~/vim_local/vimrc

$VIMRUNTIME这里的方法真的很有趣。检查amix 的 vimrc另外,还有一些跨平台技巧可以帮助您入门。

答案2

我认为,如果您使用反斜杠作为目录分隔符,那么您将会破坏任何非 Windows 的东西。

let viminfopath=$VIM."\\_viminfo"

我会努力

let viminfopath=$VIM."/_viminfo"

相反。这在 Windows 上应该也能正常工作。

当然,这只是猜测,但我将从这里开始。

相关内容