我想影响启动vim并考虑使用像这样的全局变量时vimrc文件的执行方式

if exists("g:UseEnv1")
   ....
else
   ....
endif

像这样启动vim时将设置此变量
gvim -c "let g:UseEnv1=1" file-1 file-2

但是,这不起作用,因为-c ex命令是在执行vimrc文件之后评估的。

我可以使用环境变量
if $UseEnv1 == 1
   ...
endif

但是,如果我忘记在两个 session 之间更改$ UseEnv1的值,我会觉得有点麻烦。理想情况下,我想在启动vim时明确声明需要Env 1。

还有其他可能性吗?

最佳答案

--cmd命令行参数类似于-c,但是它在任何其他初始化之前执行。您可以使用它来设置某些会影响~/.vimrc的Vim变量。

替代方案及其优点

如果您打算在命令行中实际键入那些配置(与将其编码为shell别名或类似名称相比),那么实际上使用环境变量并不是那么糟糕:在大多数(Unix)shell中,您只能设置变量在前面添加一个命令。所以代替

$ gvim --cmd "let g:UseEnv1=1" file-1 file-2

你可以写
$ UseEnv1=1 gvim file-1 file-2

关于vim - 启动(g)vim时如何将参数传递给vimrc?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23126843/

10-13 06:55