当我开始(g)vim时,如何将参数传递给vimrc?

时间:2014-04-17 07:15:01

标签: vim

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

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

在启动vim时会设置此变量

gvim -c "let g:UseEnv1=1" file-1 file-2 

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

我可以使用环境变量

if $UseEnv1 == 1
   ...
endif

但是我觉得如果忘记在两个会话之间更改$ UseEnv1的值,这会有点问题。理想情况下,当我启动vim时,我想明确表示我想要Env 1.

还有其他可能吗?

1 个答案:

答案 0 :(得分:10)

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

替代品及其优点

如果您打算在命令行中实际键入这些配置(而不是将它们编码为shell别名或类似命名),那么环境变量的使用实际上并非如此糟糕:在大多数(Unix)shell中,只能通过预先设置一个命令来设置变量。而不是

$ gvim --cmd "let g:UseEnv1=1" file-1 file-2
你可以写

$ UseEnv1=1 gvim file-1 file-2