2

我正在使用逃犯插件。

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

例子:

:Git! diff --cached

我有一个调用它的函数,然后做一些其他的事情。

我有这个命令声明:

command! Hello execute ":Git! diff"

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

Not an editor command :Git! diff

我怎样才能做到这一点?

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

4

1 回答 1

2

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

所以至少你需要将一个 Git 控制的文件传递给你的 Vim 调用。如果这仍然不起作用,请尝试通过显式触发检测

:doautocmd User Fugitive
于 2012-11-27T11:15:39.657 回答