我可以在Vim启动时调用多个函数吗?

时间:2013-01-30 13:47:10

标签: vim

我经常从Visual Studio向Vim发送文件。我将它设置为具有以下参数的外部工具:

"+call cursor($(CurLine), $(CurCol))"

但是,我也希望能够调用自己的函数。当我从VS编辑文件时,我希望窗口很大,所以我希望能够做到这样的事情:

"+call cursor($(CurLine), $(CurCol)); +call Embiggen()"

然而,这不起作用。我尝试了一些变体(例如, call Embiggen()等)。

显然我可以编写自己的PlaceCursorAndEmbiggen函数,但我真的不想这样做。有没有办法在Vim启动时调用多个函数?

3 个答案:

答案 0 :(得分:5)

尤里卡!

只需传递两个字符串:

"+call cursor($(CurLine), $(CurCol));" "+call Embiggen()"

答案 1 :(得分:1)

如果您使用替代的,更常见的语法,可能更容易找到解决方案:-c "cmd"而不是"+cmd"。根据{{​​1}},您最多可以传递10个。

答案 2 :(得分:0)

这些确切的命令可以使用管道符号组合成一个:

"+call cursor($(CurLine), $(CurCol)|call Embiggen()"

。还有更多可以通过这种方式组合,但有些像:normal那样不能,使用@Ingo Karkat或你自己的答案。如果您在+命令上使用短*并且仍然不想创建.vim文件,则可以使用:execute

vim -c "execute 'normal! 1' | execute 'normal! 2'"
带有进程替换的

或(bash / zsh)-S

vim -S <(echo '
    normal! 1
    normal! 2
')

。虽然大多数时候最好只创建一个.vim文件。

*您最多可以传递10个+-c(它们是等效的,不会单独计算)和其他10个--cmd,但字母不太有用。