我在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窗口。
如何将vim用于'git commit'?
答案 0 :(得分:12)
这可能是由薄荷引起的,请参阅this issue。
有两种方法可以解决:
使用bash.exe而不是mintty:
右键单击cygwin的快捷方式,将其从C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -
更改为C:\cygwin64\bin\bash.exe --login -i
将正确的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)