從vim運行shell程序有很多SO問題。我想知道是如果有可能做相反 - 即從命令行運行vim命令
$ vim :BundleInstall
例如,讓我跑BundleInstall爲腳本的一部分,而不是打開的Vim並在第一手動運行運行?這可能嗎?
從vim運行shell程序有很多SO問題。我想知道是如果有可能做相反 - 即從命令行運行vim命令
$ vim :BundleInstall
例如,讓我跑BundleInstall爲腳本的一部分,而不是打開的Vim並在第一手動運行運行?這可能嗎?
注意,現在的語法已經改變,該行應爲(按@sheharyar):
vim +PluginInstall +qall
對於後人,此前,正確的路線是:
vim +BundleInstall +qall
如若其他任何人比我看起來好!注意:這是在Github README vundle。
我認爲這是你所需要的:
您應該檢查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 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.
希望它能幫助!
我會爲正在尋找更一般解決方案的人添加另一個答案。
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 "+set ff=unix" "+wq" node_modules/less-monitor/bin/less-monitor
不知道這是否完全正確,但它適用於我。 感謝@ jvc26
我不明白這是一個新的問題(應該再單獨詢問),或一個新的答案。 –
這只是一個例子,如何使用多字命令的解決方案,比如'+ set ff = unix'和'+ wq'而不是'+ qall'。在我的情況下,我需要更新文件。我張貼這爲答案,只是因爲我不能發表評論(50+聲譽需要) – graceman9
*癌症治癒*感謝... –
這是直接從vundle README這裏:https://github.com/gmarik/vundle – Conner
呀 - 發現,獲取手冊頁 – jvc26
令人驚訝的是有見地的基礎上,這個工作之後。我喜歡我們甚至不需要'man vim',並且感謝SO,向下滾動兩頁。 – peth