从`-c`命令行参数调用命令在Vim中不起作用

时间:2012-11-27 10:49:04

标签: vim vim-fugitive

我正在使用Fugitive插件。

它有一个命令(?)Git!,它执行命令并在新缓冲区中打开结果。

示例:

:Git! diff --cached

我有一个调用它的函数,并在此之后执行其他一些操作。

我有这个命令声明:

command! Hello execute ":Git! diff"

如果我从vim中运行:Hello,它可以正常工作。但是当我运行vim -c Hello时,它会抛出此错误:

Not an editor command :Git! diff

我该怎么做?

(PS:我怎么能把这个错误信息保留到我按下?它会出现大约一秒钟然后消失。)

1 个答案:

答案 0 :(得分:2)

原因是Fugitive仅为其文件受Git版本控制的缓冲区定义其命令。确切地说,plugin/fugitive.vim中的代码只设置了在Git控制下检测文件的autocmds,然后才定义缓冲区本地命令。

所以至少你需要将一个Git控制的文件传递给你的Vim调用。如果仍然无效,请尝试通过

明确触发检测
:doautocmd User Fugitive