3

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

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

但是,我也希望能够调用我自己的函数。当我从 VS 编辑文件时,我希望窗口很大,所以我希望能够执行以下操作:

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

但是,这是行不通的。我尝试了一些变体(例如, call Embiggen(),等)。

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

4

3 回答 3

6

尤里卡!

只需传递两个字符串:

"+call cursor($(CurLine), $(CurCol));" "+call Embiggen()"
于 2013-01-30T13:48:24.923 回答
1

如果您使用替代的、更常见的语法,也许解决方案会更容易找到:-c "cmd"而不是"+cmd". 根据:help -c,您最多可以传递其中的 10 个。

于 2013-01-30T14:05:58.390 回答
0

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

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

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

vim -c "execute 'normal! 1' | execute 'normal! 2'"

或 (bash/zsh)-S与进程替换:

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

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

* 您最多可以传递 10 个+or -c(它们是等价的,它们不单独计算)和 10 个 other --cmd,尽管字母不太有用。

于 2013-01-30T18:37:02.223 回答