2016-04-20 10 views
11

Ich benutze git in Cygwin 64 unter Windows. Der Standard-Editor vi und git verwendet den Standard-Editor. Wenn ich ‚git commit‘ folgende Meldungen rufen Sie dazu aufgefordert werden, bevor vim gestartet wird:vim funktioniert nicht beim Aufruf von git commit innerhalb von cygwin

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 kontrolliert werden, ‚ESC‘, ‚:‘ nicht verwendet werden können, und Ich muss das Cygwin-Fenster töten.

enter image description here

Wie kann ich vim für die 'git commit'?

+1

Ändern des Standard-Editors kann eine gute Alternative Lösung sein: 'git Config-Kern.Editor Notepad " – Acemad

+1

Sind Sie sicher, dass Sie kein weiteres VI auf dem Pfad haben? Die letzte Zeile deines Screenshots ist seltsam 'D:/..' – matzeri

+0

Was passiert, wenn Sie versuchen: 'TERM = xterm git commit' – andlrc

Antwort

5

Sie können Git für Windows (msysgit) oder Vim für Windows installiert haben. Sie sind standardmäßig nicht mit Cygwin64 kompatibel - Sie müssen Ihren Pfad so konfigurieren, dass Cygwin diese Installationen ignoriert.

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

Wenn Sie sie aus irgendeinem Grund behalten müssen, stellen Sie Ihre $PATH Variable in Ihrer .bash_profile als Override ein. Verwenden Sie Ihr vorhandenes $ PATH minus die msysgit- und die Windows-vim-Pfade. Wenn Sie in Bash Scripting sind, könnten Sie die folgende versuchen, die Pfade zu entfernen, wenn bash verwenden, modifiziert, um Ihre Situation:

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

Viel Glück!

2

Sie haben die Windows-Version von GIT installiert und nicht die CYGWIN-Version von GIT installiert. GIT enthält standardmäßig eine ganze Reihe von UNIX-Tools einschließlich seiner eigenen VI-Version. Leider spielt diese Version von VI nicht gut mit CYGWIN. Der beste Weg dahin ist die Installation von GIT in CYGWIN, so dass es die CYGWIN-Version von VI oder VIM verwendet.

0

Ich konfrontiert das gleiche Problem. @ CYB.tachyon und @David Beckman erklärten beide, WARUM vim id breaking; aber anstatt irgendetwas zu deinstallieren, habe ich meinen git-Befehl von einer DOS-artigen Eingabeaufforderung ausgeführt und alles lief reibungslos. Ich nehme an, dass - schließlich - die verschiedenen Varianten von vim aufzuräumen meine ultimative Lösung sein werden, aber wenn Sie nur mit Ihrer Arbeit fortfahren wollen, war dies die schnellste Lösung für das unmittelbare Problem.

0

Dies könnte durch Minze verursacht werden, siehe this issue.

Es gibt zwei Möglichkeiten zu beheben:

  1. Verwenden bash.exe statt mintty:

    rechts auf die Verknüpfung von Cygwin klicken, ändern Sie es von C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico - zu C:\cygwin64\bin\bash.exe --login -i

  2. hinzufügen der richtige vim-Pfad zu git config:

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

    Beachten Sie, dass cygdrive im Pfad nicht als .gitconfig kann es nicht erkennen. Und wenn Sie 32-Bit-Vim verwenden, dann sollte der Pfad C:/cygwin/bin/