vim ne fonctionne pas lors de l'appel de git commit dans cygwin

j'utilise Git dans Cygwin 64 sous windows. L'éditeur par défaut vi et git utilise l'éditeur par défaut. Lorsque j'appelle 'git commit', les messages suivants seront affichés avant le démarrage de vim:

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

après cela, vi va commencer mais ne peut pas être contrôlé, 'ESC', ':' ne peut pas être utilisé et je dois tuer la fenêtre cygwin.

enter image description here

Comment puis-je utiliser vim pour le "git commit"?

16
demandé sur Christian Schulzendorff 2016-04-20 14:25:20

5 réponses

Cela peut être causé par mintty, voir ce problème.

Il y a deux façons de corriger:

  1. utilisez bash.exe au lieu de mintty:

    clic droit sur le raccourci de cygwin, changez le de C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -C:\cygwin64\bin\bash.exe --login -i

  2. ajouter le chemin vim correct à la configuration git:

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

    Remarque: ne pas utiliser cygdrive dans le chemin d'accès .gitconfig vous ne pouvez pas le reconnaître. Et si vous utilisez vim 32 bits, puis le chemin d'accès doit être C:/cygwin/bin/

7
répondu Deqing 2017-11-17 05:48:25

vous pouvez avoir git pour Windows (msysgit) ou Vim pour Windows installé. Hors de la boîte, ils ne sont pas compatibles avec Cygwin64 - vous devez configurer votre chemin pour Cygwin pour ignorer ces installations.

l'option la plus facile serait de désinstaller ces deux éléments et d'utiliser simplement la version Cygwin.

si vous avez besoin de les garder pour une raison quelconque, définissez votre $PATH variable .bash_profile comme un remplacement. Utilisez votre $ PATH existant, moins le msysgit et windows vim chemins. Si vous êtes en bash scripting, vous pouvez essayer ce qui suit pour supprimer les chemins lors de l'utilisation de bash, modifié à votre situation particulière:

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

Bonne chance!

5
répondu CYB.tachyon 2016-06-21 05:51:59

vous avez la version windows de GIT installée plutôt que la version CYGWIN de git installée. Git par défaut est livré avec un jeu complet D'outils UNIX incluant sa propre version de VI. Malheureusement, cette version de VI ne joue pas bien avec CYGWIN. La meilleure solution est d'installer git dans CYGWIN pour qu'il utilise la version CYGWIN de VI ou VIM.

1
répondu David Beckman 2016-09-02 17:12:21

j'ai fait face à ce même problème. @CYB.tachyon et @ David Beckman ont tous les deux expliqué pourquoi vim id s'est cassé; mais, plutôt que de désinstaller quoi que ce soit, j'ai exécuté ma commande git à partir D'une invite de commande DOS-style et tout s'est bien passé. Je suppose - éventuellement - nettoyer les différentes saveurs de vim sera ma solution ultime, mais si vous voulez juste obtenir avec votre travail, ce fut la solution la plus rapide au problème immédiat.

0
répondu Steve B 2017-08-16 19:37:30

lorsque vous installez Git pour Windows, vous devez choisir utiliser Git à partir de Git Bash seulement.

Use Git from Git Bash Only

Si vous choisissez Use Git from the Windows Command Prompt, il sera la cause de ce problème.

et honnêtement, qui va utiliser git depuis l'invite de commande? ;)

0
répondu PatPeter 2018-09-26 04:18:03