执行时无法发出 Vim 的 :q

Can't issue Vim's :q on execution

我有一个方便的功能,可以让我轻松地通过 Vim 的 Vundle in the spf13 distribution 安装插件。

function vimp() {
    for plugin in "$@"
    do
        echo Bundle \"$plugin\" >> ~/.vimrc.bundles.local
    done
    vim --cmd "BundleInstall!" --cmd "BundleClean" --cmd "q"
    echo "Plugin installation complete"
}

不幸的是,q 命令从未运行。我希望在退出编辑器之前进行捆绑安装和清理,但这似乎不起作用。其他命令 do 我可以说效果最好。

直到最近,我一直在使用这个命令:

vim +BundleInstall! +BundleClean +q

应该做大致相同的事情(运行 打开文件后的命令与打开文件之前的命令),但 q 同样不会触发。我有什么想法可以使它起作用,或者谁能解释为什么它不起作用?

使用 +qa--cmd qa 而不是 +q--cmd quit。通常这与多个打开的缓冲区有关(尝试使用 +q +q+q +q +q 来验证)。