it-swarm.com.de

vim funktioniert nicht beim aufruf von git commit in cygwin

Ich benutze Git in Cygwin 64 unter Windows. Der Standardeditor vi und git verwenden den Standardeditor. Wenn ich 'git commit' aufrufe, werden folgende Meldungen angezeigt, bevor vim gestartet wird:

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

Danach wird vi gestartet, kann aber nicht gesteuert werden, 'ESC', ':' kann nicht verwendet werden und ich muss das Cygwin-Fenster schließen.

 enter image description here

Wie kann ich vim für das "Git Commit" verwenden?

Dies könnte eine Ursache für die Minze sein, siehe this issue .

Es gibt zwei Möglichkeiten, dies zu beheben:

  1. Verwenden Sie bash.exe anstelle von mintty:

    Klicken Sie mit der rechten Maustaste auf die Verknüpfung von cygwin und ändern Sie sie von C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico - in C:\cygwin64\bin\bash.exe --login -i.

  2. Fügen Sie den richtigen vim-Pfad zu git config hinzu:

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

    Beachten Sie, dass cygdrive im Pfad nicht verwendet wird, da .gitconfig es nicht erkennen kann. Und wenn Sie 32-Bit-VIM verwenden, sollte der Pfad C:/cygwin/bin/ lauten.

11
Deqing

Möglicherweise haben Sie Git für Windows (msysgit) oder Vim für Windows installiert. Standardmäßig sind sie nicht mit Cygwin64 kompatibel. Sie müssten Ihr Pathing für Cygwin konfigurieren, um diese Installationen zu ignorieren.

Die einfachere Option wäre, beide Elemente zu deinstallieren und nur die Cygwin-Version zu verwenden.

Wenn Sie sie aus irgendeinem Grund aufbewahren müssen, setzen Sie die Variable $PATH in Ihrem .bash_profile als Überschreibung. Verwenden Sie Ihren vorhandenen $ PATH abzüglich der Pfade msysgit und windows vim. Wenn Sie sich mit Bash-Skripten beschäftigen, können Sie Folgendes versuchen, um die Pfade bei Verwendung von Bash zu entfernen, die an Ihre spezielle Situation angepasst sind:

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

Viel Glück!

7
CYB.tachyon

Sie haben die Windows-Version von GIT anstelle der CYGWIN-Version von GIT installiert. GIT wird standardmäßig mit einem vollständigen Satz von UNIX-Tools geliefert, einschließlich einer eigenen Version von VI. Leider spielt diese Version von VI nicht mit CYGWIN. Dies lässt sich am besten umgehen, indem Sie GIT in CYGWIN installieren, damit die CYGWIN-Version von VI oder VIM verwendet wird.

2
David Beckman

Ich stand vor dem gleichen Problem. @ CYB.tachyon und @David Beckman erklärten beide WARUM vim id breaking; Aber anstatt etwas zu deinstallieren, habe ich meinen git-Befehl über eine DOS-Eingabeaufforderung ausgeführt und alles verlief reibungslos. Ich nehme an, irgendwann wird es MEINE ultimative Lösung sein, die verschiedenen Aromen von Vim zu bereinigen, aber wenn Sie nur mit Ihrer Arbeit weitermachen möchten, war dies die schnellste Lösung für das unmittelbare Problem.

0
Steve B

Wenn Sie Git für Windows installieren, MÜSSEN Sie "Nur Git-Bash verwenden" auswählen.

 Use Git from Git Bash Only

Wenn Sie Use Git from the Windows Command Prompt auswählen, wird dieses Problem verursacht.

Und ehrlich gesagt, wer wird git an der Eingabeaufforderung verwenden? ;)

0
PatPeter