在cygwin

时间:2016-04-20 11:25:21

标签: git vim cygwin commit vi

我在Windows下的Cygwin 64中使用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

如何将vim用于'git commit'?

5 个答案:

答案 0 :(得分:12)

这可能是由薄荷引起的,请参阅this issue

有两种方法可以解决:

  1. 使用bash.exe而不是mintty:

    右键单击cygwin的快捷方式,将其从C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -更改为C:\cygwin64\bin\bash.exe --login -i

  2. 将正确的vim路径添加到git config:

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

    请注意,请勿在路径中使用cygdrive .gitconfig无法识别。{0}}如果您使用的是32位vim,则路径应为C:/cygwin/bin/

答案 1 :(得分:7)

您可能安装了Git for Windows(msysgit)或Vim for Windows。开箱即用它们与Cygwin64不兼容 - 您需要为Cygwin配置路径以忽略这些安装。

更简单的选择是卸载这两个项目,只使用Cygwin版本。

如果您因任何原因需要保留它们,请将$PATH中的.bash_profile变量设置为覆盖。使用现有的$ PATH,减去msysgit和windows vim路径。如果你正在使用bash脚本,你可以尝试以下方法来删除使用bash的路径,根据你的具体情况进行修改:

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

答案 2 :(得分:2)

您安装了Windows版本的GIT,而不是安装了CYGWIN版本的GIT。默认情况下,GIT附带一整套UNIX工具,包括自己的VI版本。不幸的是,那个版本的VI与CYGWIN并不相称。解决这个问题的最佳方法是在CYGWIN中安装GIT,以便它使用CYGWIN版本的VI或VIM。

答案 3 :(得分:0)

我遇到了同样的问题。 @ CYB.tachyon和@David Beckman都解释了为什么vim id破坏;但是,我没有卸载任何东西,而是从DOS风格的命令提示符运行我的git命令,一切顺利。我想 - 最终 - 清理vim的各种口味将是我的终极解决方案,但如果你只是想继续你的工作,这是解决当前问题的最快解决方案。

答案 4 :(得分:-1)

在安装Windows版Git时,必须从“仅Git Bash”中选择“使用Git”。

Use Git from Git Bash Only

如果选择Use Git from the Windows Command Prompt,将导致此问题。

说实话,谁会在命令提示符下使用git? ;)