0

我有一个运行(类似于)以下命令的 bash 脚本:

vim -E <<EOT
call Myfunc()
EOT

whereMyfunc()在我的 .vimrc 中定义。我发现使用heredoc(而不是简单地调用它-E并手动输入命令)会导致vim跳过加载我的.vimrc,从而设置兼容模式(导致其他问题)。

如果必须,我可以手动加载我的 .vimrc,但我假设我不知道它在哪里,所以我想让 vim 完成这项工作。

使用 heredoc 是否使 vim 设置了一些其他选项(-u NORC例如),我可以取消设置以获得正常行为?

如果重要的话,我在 Vim 7.3 中。

4

1 回答 1

0

通过 heredoc 向 vim 提供参数相当于从 stdin 获取输入:

vim -E -
call Myfunc()
qa!

这会以静默模式启动 vim(请参阅 参考资料:help -s-ex)并且只加载参数指定的插件-u。要加载所有插件,请将 ex 命令写入文件并使用该文件作为输入:

cat <<EOT > input.vim
call Myfunc()
qa!
EOT

vim -E input.vim

(我添加qa:了强制vim在运行后退出Myfunc()。)

于 2012-05-10T04:23:06.567 回答