VIMでFugitive.vimを入れました。

NeoBundle 'tpope/vim-fugitive'

どうしたら使えるようになるでしょうか?

:Gstatus

などとやっても、「エディタのコマンドではありません: Gstatus」となってしまいます。

https://github.com/tpope/vim-fugitive」のFAQに「Fugitive cares about the current file, not the current working directory. Edit a file from the repository.」とあるので、gitのコマンドラインで 「cd .git」 とやって、「.git」フォルダに移動してからやるのですが、同様も「エディタのコマンドではありません: Gstatus」とでます。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2015/09/14 16:35:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答0件)

回答はまだありません

  • id:fiwa
    >>
    Fugitive cares about the current file, not the current working directory. Edit a file from the repository.
    Fugitiveは作業ディレクトリにいるかどうかではなく、開かれているファイルを問題にします。そのリポジトリからファイルを編集して下さい。
    <<
    ということですが、gitリポジトリにあるファイルを開いた状態でコマンドを打っても同じでしょうか?
  • id:fiwa
    こちらに同じような話があるけどこの人もファイルを開いているかどうか分からない。
    https://groups.google.com/forum/m/#!topic/vim_jp/YFpVzC_21z4
  • id:tetlis
    ちなみに環境はWindowsで、kaoriyaのgvimを使っています。gitの操作はコマンドプロンプトです。

    「.git」フォルダが存在するフォルダにあるファイル(例:index.php)などを編集している時に、「Gstatus」等、Fugitiveのコマンドが効きませんでした。それが「gitリポジトリにあるファイルを開いた状態でコマンドを打っても」ということですよね。

    今日になって、コマンドプロンプトで「git init」→「git add」 等をした後なら、「Gstatus」のコマンドが効くことがわかりました。ですが、「-でaddとresetの切り替え」等ができません。

    また、「Gwrite」をするとファイルが保存されるだけでaddされない、「Gcommit」は小さな黒いウインドウが一瞬出て消えるだけでcommitされない(コマンドの所には、「:Gcommit(改行が入る)fugiveve:(fugitive:は赤字)」、という状態です。

    Windowsだとうまくいかないのかな、と思っています。
  • id:aiya000
    同じくWindows Kaoriya GVim + neobundle.vimを使用し、以下で動作確認を取れています。
    試してみてください。

    :help neobundle.txt
    これでneobundleのhelpが開きます。
    そしてそのhelpの1845行目に当質問と同じQ&Aがあります。

    つまり
    NeoBundle 'tpope/vim-fugitive'

    NeoBundle 'tpope/vim-fugitive', { 'augroup' : 'fugitive'}
    と書く

    もしくは
    NeoBundle 'tpope/vim-fugitive'
    これを書いた後に
    if neobundle#tap('vim-fugitive')
    call neobundle#config('vim-fugitive', {
    \ 'augroup' : 'fugitive'
    \})
    call neobundle#untap()
    endif
    こちらを書く。

    どちらかを試した後に
    カレントディレクトリをgitリポジトリ以下に変更して
    :GStatus
    を試してみてください。
  • id:tetlis
    >>NeoBundle 'tpope/vim-fugitive', { 'augroup' : 'fugitive'}
    >>と書く
    >>
    >>もしくは
    >>NeoBundle 'tpope/vim-fugitive'
    >>これを書いた後に
    >>if neobundle#tap('vim-fugitive')
    >>call neobundle#config('vim-fugitive', {
    >>\ 'augroup' : 'fugitive'
    >>\})
    >>call neobundle#untap()
    >>endif
    >>こちらを書く。


    やってみたけれどダメででした。

    その後、fugitive以外のプラグインなどを削除して見たら、GstatusやGwriteは問題ない状態になりました。他のプラグインと何らかの干渉があったようです。

    しかしGcommitは前と同じ用に、は小さな黒いウインドウが一瞬出て消えるだけでcommitされない状態です。画面を録画して黒いウインドウの表示を見てみたのですが以下の通りでした。

    C:\dindows\system32\cmd.exe /c (git --git-dir=^"D::/01/.git^" commit ^> C:\Users\ユーザー名\AppData\Local\Temp\VID19F3.tmp 2^> C:\Users\ユーザー名\AppData\Local\Temp\VIE19F4.tmp)
    shell returned 128
  • id:fiwa
    > 「Gcommit」は小さな黒いウインドウが一瞬出て消えるだけでcommitされない
    > (コマンドの所には、「:Gcommit(改行が入る)fugitive:(fugitive:は赤字)」

    issue #665にあるのと同じような話なんですかね...
    https://github.com/tpope/vim-fugitive/issues/665
  • id:tetlis
    > issue #665にあるのと同じような話なんですかね...
    > https://github.com/tpope/vim-fugitive/issues/665

    同じステータ表示です(でした)。

    一応Gcommitなどもできるようになり、ある程度解決しました。

    Gcommitが使えなかった原因は、「sh.exe」へのパスが通ってなかったからかなと思っています。

    そして、Gcommitが使えるようになったのは、このプラグイン以外の問題に取り組んでいるときにcygwinを入れて、gitのではなくcygwinのsh.exeにパスを設定したおかげだと想像しています。

    いつの間にか動くようになっていたので何が問題だったか明確ではないですし、GcommitだけではなくGstatusなど含めた全てのコマンドが使えなくなることが現在もちょくちょくあるので完全解決ではありませんが。

    みなさまアドバイスありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません