在Vim启动时,我能否调用多个函数?

3

我经常将文件从Visual Studio发送到Vim。我已经将其设置为外部工具,参数如下:

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

然而,我也希望能够调用自己的函数。当我从VS编辑文件时,我希望窗口很大,因此我期望可以做如下操作:

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

然而,这并不起作用。我尝试了几种变化(例如,调用Embiggen()等)。
显然,我可以编写自己的PlaceCursorAndEmbiggen函数,但我真的不想这样做。是否有任何方法在Vim启动时调用多个函数?
3个回答

6

Eureka!

只需要传递两个字符串:

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

1
也许如果你使用更常见的语法-c "cmd"而不是"+cmd",解决方案可能会更容易找到。根据:help -c,你可以传递多达10个这样的参数。

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,尽管字母不太有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接