2

Fugitiveプラグインを使用しています。

Git!コマンドを実行し、結果を新しいバッファに開くコマンド(?)があります。

例:

:Git! diff --cached

これを呼び出す関数があり、その後他のことを行います。

そして、私はこのコマンド宣言を持っています:

command! Hello execute ":Git! diff"

:Hellovim内から実行すると、正常に動作します。しかし、実行するvim -c Helloと、次のエラーがスローされます。

Not an editor command :Git! diff

これどうやってするの?

(PS: を押すまでこのエラー メッセージが表示されないようにするにはどうすればよいですか? 約 1 秒間表示されて消えます。)

4

1 に答える 1

2

その理由は、Fugitive はファイルが Git バージョン管理下にあるバッファーに対してのみコマンドを定義するためです。正確には、 のコードは、plugin/fugitive.vimGit の制御下にあるファイルを検出する autocmds を設定するだけで、その後でバッファーローカル コマンドを定義します。

したがって、少なくとも Git 制御ファイルを Vim 呼び出しに渡す必要があります。それでもうまくいかない場合は、次の方法で明示的に検出をトリガーしてみてください

:doautocmd User Fugitive
于 2012-11-27T11:15:39.657 に答える