O Cygwin destina-se principalmente a fornecer um ambiente semelhante ao Linux no topo do Windows. Funciona melhor com programas compilados para o Cygwin. Pode funcionar diretamente com programas nativos do Windows, mas você precisa ter cuidado.
Um recurso do Cygwin é que ele tenta fazer com que o sistema de arquivos do Windows pareça um sistema de arquivos típico do Linux, por exemplo, os programas estão em / usr / bin. Programas Cygwin não se referem à unidade C:, eles se referem a / cygdrive / c. (Alguns programas do Cygwin entendem "C:", mas essa é a exceção.) Enquanto seu diretório pessoal aparece em C: \ cygwin \ home do Windows, ele aparece em / home no Cygwin. Isso significa que passar nomes de caminhos completos entre os programas Cygwin e os programas do Windows pode ser complicado: os programas do Windows não entendem os nomes completos dos caminhos do Cygwin e os programas do Cygwin geralmente não entendem os nomes dos caminhos completos do Windows. Há um utilitário Cygwin, o cygpath, que pode ser traduzido entre o Windows e o Cygwin, mas você precisa inserir esse nível de tradução conforme necessário.
Eu não sei de uma solução geral para o problema de interfacear programas Cygwin com programas do Windows. A melhor solução depende do que você está tentando fazer, de quanto você quer viver no mundo do Linux versus viver no mundo do Windows e nos programas que você precisa usar.
Se você planeja usar o Mercurial, o Vim, o Git etc. na linha de comando do Cygwin, recomendo instalar as versões do Cygwin desses programas. Você pode ter as versões do Windows e do Cygwin no seu sistema, mas é preciso ter cuidado com o seu PATH.
Eu tentei configurar o Windows gvim para usar o shell Cygwin e finalmente desisti. Agora uso o Windows gvim ao abrir arquivos da GUI e do Cygwin vim ao abrir arquivos a partir da linha de comando. Há apenas muitos lugares dentro do Windows Vim, onde as convenções da API do sistema operacional Windows precisam ser adaptadas às convenções do Cygwin de programas externos. Dito isso, é fácil usar os mesmos arquivos de configuração de usuário para ambos. Em um shell bash do Cygwin:
ln -s /cygdrive/c/Documents\ and\ Settings/username/_vimrc ~/.vimrc
ln -s /cygdrive/c/Documents\ and\ Settings/username/vimfiles ~/.vim
Você só precisa garantir que todos esses arquivos tenham finais de linha do Unix e use d2u
naqueles que não o fizerem. O Vim do Cygwin (qualquer Unix Vim) espera finais de linha Unix; O Windows Vim aceita finalizações de linha Unix ou DOS.
Eu usei bastante o Cygwin, mas não sou especialista. O acima apenas reflete minhas experiências.