How to run a vim command from the shell command-line?
There are many stackoverflow questions about running shell programs from within vim
. Is it is possible to do the reverse, i.e.,
$ vim :BundleInstall
to allow me to run BundleInstall as part of a shell script, rather than having to open vim
and run it manually?
Note, now the syntax has changed, and the line should read (As per @sheharyar):
vim +PluginInstall +qall
For posterity, previously, the correct line was:
vim +BundleInstall +qall
Should anyone other than me be looking! Note: this is in the Github README for vundle.
Per the vim man page (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.
or:
--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.
It really depends on what you want to do. Also, as described at the vundle readme file, if you launch vim like this:
vim +BundleInstall +qall
This will install all bundle options without opening vim. And just for clarification, from the vim documentation:
: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.
How about something more complex?
vim "+set ff=unix" "+wq" node_modules/less-monitor/bin/less-monitor
Not sure whether that is totally correct, but it works for me. Thanks @jvc26