web-dev-qa-db-fra.com

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 sont 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 commencera mais ne pourra pas être contrôlé, 'ESC', ':' ne pourra plus être utilisé et je devrai tuer la fenêtre de cygwin.

 enter image description here

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

17

Cela pourrait être causé par menthe, voir ce numéro .

Il y a deux façons de réparer:

  1. Utilisez bash.exe à la place de menthe:

    Faites un 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. Ajoutez le bon chemin vim à git config:

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

    Notez que n'utilisez pas cygdrive dans le chemin car .gitconfig ne peut pas le reconnaître. Et si vous utilisez vim 32 bits, le chemin doit être C:/cygwin/bin/

11
Deqing

Vous pouvez avoir installé Git pour Windows (msysgit) ou Vim pour Windows. Dès qu'ils sont livrés, ils ne sont pas compatibles avec Cygwin64 - vous devez configurer votre chemin d'accès pour que Cygwin ignore ces installations.

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

Si vous devez les conserver pour une raison quelconque, définissez votre variable $PATH dans votre .bash_profile en tant que substitution. Utilisez votre $ PATH existant, moins les chemins msysgit et windows vim. Si vous êtes intéressé par le script bash, vous pouvez essayer ce qui suit pour supprimer les chemins lorsque vous utilisez bash, modifié en fonction de 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!

7
CYB.tachyon

Vous avez installé la version Windows de GIT plutôt que la version CYGWIN de GIT. GIT par défaut est fourni avec un ensemble complet d'outils UNIX, y compris sa propre version de VI. Malheureusement, cette version de VI ne joue pas à Nice avec CYGWIN. La meilleure solution consiste à installer GIT dans CYGWIN afin d’utiliser la version CYGWIN de VI ou VIM.

2
David Beckman

J'ai fait face au même problème. @ CYB.tachyon et @David Beckman ont tous deux expliqué POURQUOI vim id break; mais, plutôt que de désinstaller quoi que ce soit, j'ai exécuté ma commande git à partir d'une invite de commande de style DOS, et tout s'est bien passé. Je suppose que, finalement, nettoyer les différentes saveurs de vim sera MA solution ultime, mais si vous souhaitez simplement poursuivre votre travail, c’était la solution la plus rapide au problème immédiat.

0
Steve B

Lorsque vous installez Git pour Windows, vous DEVEZ choisir Utiliser Git à partir de Git Bash uniquement.

 Use Git from Git Bash Only

Si vous choisissez Use Git from the Windows Command Prompt, cela provoquera ce problème.

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

0
PatPeter