有很多关于从内部运行 shell 程序的 stackoverflow 问题vim
。是否有可能做相反的事情,即
$ vim :BundleInstall
允许我将BundleInstall作为 shell 脚本的一部分运行,而不必vim
手动打开和运行它?
有很多关于从内部运行 shell 程序的 stackoverflow 问题vim
。是否有可能做相反的事情,即
$ vim :BundleInstall
允许我将BundleInstall作为 shell 脚本的一部分运行,而不必vim
手动打开和运行它?
请注意,现在语法已更改,该行应为(根据@sheharyar):
vim +PluginInstall +qall
对于后代,以前,正确的行是:
vim +BundleInstall +qall
难道除了我以外的任何人都在看!注意:这是在Github README for vundle 中。
根据vim 手册页( man vim
):
-c {command} {command} will be executed after the first file has been read. {command} is interpreted as an Ex command. If the {command} contains spaces it must be enclosed in double quotes (this depends on the shell that is used). Example: Vim "+set si" main.c Note: You can use up to 10 "+" or "-c" commands.
或者:
--cmd {command} Like using "-c", but the command is executed just before processing any vimrc file. You can use up to 10 of these commands, independently from "-c" commands.
这真的取决于你想做什么。此外,如vundle自述文件中所述,如果您像这样启动 vim:
vim +BundleInstall +qall
这将在不打开 vim 的情况下安装所有捆绑选项。只是为了澄清,来自vim 文档:
:qall This stands for "quit all". If any of the windows contain changes, Vim will not exit. The cursor will automatically be positioned in a window with changes. You can then either use ":write" to save the changes, or ":quit!" to throw them away.
更复杂的东西怎么样?
vim "+set ff=unix" "+wq" node_modules/less-monitor/bin/less-monitor
不确定这是否完全正确,但它对我有用。谢谢@jvc26
我将为正在寻找更通用解决方案的人们添加另一个答案。
vim +command
可以运行一个 Vim 命令,但可以从 shell 运行多个 Vim 命令。相反,在 Ex 模式下启动 Vim 并使用 Here 文档提供命令。这是我编写的脚本中的一个示例。它在文件中搜索一个模式并在它之前插入一些文本。
ex --noplugin +1 "$v_file" <<-END
set maxmempattern=8000
/^\s*\<endmodule\>/i
FIXME \`ifdef XXX_INCLUDE_API
\`include "${api_file}"
\`endif
.
w
q
END
做
vim --cmd BundleInstall
做你想做的事?