70

内からシェル プログラムを実行することに関して、stackoverflow には多くの質問がありますvim。逆に、つまり、

$ vim :BundleInstall

BundleInstallを手動で開いて実行するのではなく、シェル スクリプトの一部として実行できるようにするにはどうすればよいvimですか?

4

5 に答える 5

102

構文が変更され、行が次のようになることに注意してください(@sheharyar に従って):

vim +PluginInstall +qall

後世のために、以前は正しい行は次のとおりでした。

vim +BundleInstall +qall

私以外の誰かが見ているは​​ずです!注: これは、バンドルのGithub READMEにあります。

于 2012-10-11T07:34:13.607 に答える
30

vimの man ページ( 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のreadme ファイルで説明されているように、次のように 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.
于 2012-10-11T11:54:57.050 に答える
4

もっと複雑なものはどうですか?

vim "+set ff=unix" "+wq" node_modules/less-monitor/bin/less-monitor

それが完全に正しいかどうかはわかりませんが、私にとってはうまくいきます。ありがとう @jvc26

于 2016-04-12T15:16:58.573 に答える
2

より一般的な解決策を探している人のために、別の回答を追加します。

vim +command1 つの Vim コマンドを実行するために機能しますが、シェルから複数の Vim コマンドを実行するために機能します。代わりに、Ex-mode で 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
于 2012-10-11T11:55:31.590 に答える
0

しますか

vim --cmd BundleInstall

あなたがしたいことをしますか?

于 2012-10-11T07:32:31.783 に答える