Windows 具有特殊字符的gVim访问环境变量

Windows 具有特殊字符的gVim访问环境变量,windows,vim,portability,Windows,Vim,Portability,PortableApps在使用其应用程序时自动添加。但是,当使用访问名称中带有特殊字符的变量时,会出现错误 例如:执行时 :echo $PortableApps\.comDocuments 或 我得到以下错误: E15: Invalid expression: \.comDocuments 及 我做运动时也会遇到类似的问题 :echo $PAL:Drive PortableApps环境变量似乎都在那里。我做了一个: :echo $<C-D> :echo$ 它们被列出 如何访

PortableApps在使用其应用程序时自动添加。但是,当使用访问名称中带有特殊字符的变量时,会出现错误

例如:执行时

:echo $PortableApps\.comDocuments

我得到以下错误:

E15: Invalid expression: \.comDocuments

我做运动时也会遇到类似的问题

:echo $PAL:Drive
PortableApps环境变量似乎都在那里。我做了一个:

:echo $<C-D>
:echo$
它们被列出


如何访问这些变量?

对于Vim,环境变量只能包含字母、数字和下划线。发件人:

因此,对于像
set something=$PortableApps.comDocuments
这样的表达式,Vim只将
$PortableApps
视为环境变量-
。comDocuments
是附加到它的字符串。使用
echo$PortableApps.com文档
$PortableApps
和变量
comDocuments
并加入它们。使用echo$PortableApps\.comDocuments,它可以看到环境变量
$PortableApps
,后面是它无法理解的内容:
\.comDocuments

如果您可以访问Vim的Python或Perl接口,则可以使用它们。例如,在启动Vim后:

env foo.bar=blah vim
以下两项都给出了输出
blah

:perl VIM::Msg($ENV{"foo.bar"})
:python import os; print os.environ['foo.bar']
例如,在Python中,可以将环境变量分配给Vim变量:

:python vim.vars['foobar'] = os.environ['foo.bar']
:echo foobar
blah
然后,您可以像使用任何其他Vim变量一样使用
foobar

:python vim.vars['foobar'] = os.environ['foo.bar']
:echo foobar
blah

当然,在Windows上,您必须安装Python或Perl才能使用它。

它说
任何非id字符都可以跟在环境变量名称后面。
这不是意味着环境变量可以有特殊字符吗?谢谢@muru@查看帮助中的模糊完整段落,使其更清晰。我更新了答案,将其包括在内。这使我对环境变量扩展有了更好的了解!谢谢@muru@看着蓝精灵,不客气。如果您对更好地使用Vim感兴趣,请查看姐妹站点。
:echo foobar
blah