Graças a @skarface, resolvi esse problema com relação ao comprometimento. Primeiro, como mencionei na edição da questão, descobri que não estava executando o Cygwin Git no Cygwin, mas o Windows Git real. Assim, a questão da integração faz sentido: não está encontrando vim
ou vimdiff
.
Eu tive que fazer:
git config --global core.editor C:/cygwin/bin/vim.exe
Não sei por que o acima funcionou, pois:
$ which vim
/usr/bin/vim
mas:
$ ls C:/cygwin/usr/bin
ls: cannot access C:/cygwin/usr/bin: No such file or directory
Não tenho certeza exatamente por que esse é o caminho que funcionou, mas aconteceu.
Eu já resolvi isso com relação ao diffing também. Eu tive que:
$ git config --global diff.tool vimdiff
$ git config --global difftool.vimdiff.cmd 'C:/cygwin/bin/vim.exe -d "$LOCAL" "$REMOTE"'
Isso me permitiu começar o Vimdiff com o Git, mas ainda havia alguns hickups. Eu pude ver os arquivos, mas a própria ferramenta não estava conseguindo diferenciar, dando esses erros:
Parece que o que estava acontecendo aqui é que o Git estava de alguma forma transando com a opção shell
do Vim. No meu .vimrc
, eu coloquei este comando:
set shell=bash
e agora tudo funciona bem.