web-dev-qa-db-ja.com

cygwin内でgitcommitを呼び出すときにvimが機能しない

私はWindowsの下のCygwin64内でgitを使用しています。デフォルトのエディターviおよびgitは、デフォルトのエディターを使用します。 'git commit'を呼び出すと、vimが起動する前に次のメッセージが表示されます。

git commit
Vim warning: output is not to a terminal
Vim warning: input is not from a terminal

その後、viが起動しますが、制御できません。「ESC」、「:」は使用できず、cygwinウィンドウを強制終了する必要があります。

enter image description here

'git commit'にvimを使用するにはどうすればよいですか?

これはminttyが原因である可能性があります。 この問題 を参照してください。

修正する方法は2つあります。

  1. Minttyの代わりにbash.exeを使用します。

    Cygwinのショートカットを右クリックし、C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -からC:\cygwin64\bin\bash.exe --login -iに変更します。

  2. 正しいvimパスをgitconfigに追加します。

    git config --global core.editor "C:/cygwin64/bin/vim.exe"

    .gitconfigは認識できないため、パスでcygdriveを使用しないでください。また、32ビットvimを使用している場合、パスはC:/cygwin/bin/である必要があります。

13
Deqing

Git for Windows(msysgit)またはVim forWindowsがインストールされている可能性があります。箱から出して、それらはCygwin64と互換性がありません-それらのインストールを無視するようにCygwinのパスを構成する必要があります。

より簡単なオプションは、これらのアイテムの両方をアンインストールして、Cygwinバージョンを使用することです。

何らかの理由でそれらを保持する必要がある場合は、$PATH変数を.bash_profileにオーバーライドとして設定します。 msysgitパスとwindowsvimパスを除いた既存の$ PATHを使用します。 bashスクリプトに興味がある場合は、次のことを試して、bashを使用するときにパスを削除し、特定の状況に合わせて変更することができます。

msysgit='/cygdrive/c/Program Files/git:'
PATH="${msysgit//$PATH/}"
msysvim='/cygdrive/c/Program Files (x86)/vim/vim74:'
PATH="${mysysvim//$PATH/}"

幸運を!

9
CYB.tachyon

CYGWINバージョンのGITではなく、WindowsバージョンのGITがインストールされています。 GITには、デフォルトで、独自のバージョンのVIを含むUNIXツールのフルセットが付属しています。残念ながら、そのバージョンのVIはCYGWINでNiceを再生しません。これを回避する最善の方法は、CYGWINにGITをインストールして、VIまたはVIMのCYGWINバージョンを使用するようにすることです。

4
David Beckman

私はこれと同じ問題に直面しました。 @ CYB.tachyonと@DavidBeckmanの両方が、vimidが壊れている理由を説明しました。しかし、何かをアンインストールするのではなく、DOSスタイルのコマンドプロンプトからgitコマンドを実行すると、すべてがスムーズに進みました。最終的には、vimのさまざまなフレーバーをクリーンアップすることが私の究極の解決策になると思いますが、仕事を続けたいだけなら、これが当面の問題に対する最も迅速な解決策でした。

0
Steve B

Git for Windowsをインストールするときは、Git BashOnlyからUseGitを選択する必要があります。

Use Git from Git Bash Only

Use Git from the Windows Command Promptを選択すると、この問題が発生します。

そして正直なところ、コマンドプロンプトからgitを使用するのは誰ですか? ;)

0
PatPeter