我正在使用Fugitive插件。
它有一个命令(?)Git!
,它执行命令并在新缓冲区中打开结果。
示例:
:Git! diff --cached
我有一个调用它的函数,并在此之后执行其他一些操作。
我有这个命令声明:
command! Hello execute ":Git! diff"
如果我从vim中运行:Hello
,它可以正常工作。但是当我运行vim -c Hello
时,它会抛出此错误:
Not an editor command :Git! diff
我该怎么做?
(PS:我怎么能把这个错误信息保留到我按下?它会出现大约一秒钟然后消失。)
答案 0 :(得分:2)
原因是Fugitive仅为其文件受Git版本控制的缓冲区定义其命令。确切地说,plugin/fugitive.vim
中的代码只设置了在Git控制下检测文件的autocmds,然后才定义缓冲区本地命令。
所以至少你需要将一个Git控制的文件传递给你的Vim调用。如果仍然无效,请尝试通过
明确触发检测:doautocmd User Fugitive