我经常从Visual Studio向Vim发送文件。我将它设置为具有以下参数的外部工具:
"+call cursor($(CurLine), $(CurCol))"
但是,我也希望能够调用自己的函数。当我从VS编辑文件时,我希望窗口很大,所以我希望能够做到这样的事情:
"+call cursor($(CurLine), $(CurCol)); +call Embiggen()"
然而,这不起作用。我尝试了一些变体(例如, call Embiggen()
等)。
显然我可以编写自己的PlaceCursorAndEmbiggen
函数,但我真的不想这样做。有没有办法在Vim启动时调用多个函数?
答案 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
,但字母不太有用。