Como invocar o gvim do Windows em um ambiente Windows a partir do Cygwin?

3

Quando dou um comando gvim no Cygwin, quero que invoque o gvim que instalei no meu Windows.

Eu tentei escrever uma função no meu .bashrc chamado gvim que invoca o gvim.exe na pasta Program Files, usando cygpath e tudo isso, mas o problema é que, aparentemente, invoca o gvim com o ambiente do Cygwin; :echo $HOME imprime C: \ cygwin \ home \ Sundar em vez de C: \ Users \ Sundar e :diffsplit relata falhas na criação de arquivos temporários que, presumo, estão relacionados ao mesmo. Então, como eu posso invocar o gvim do Cygwin mas torná-lo como se fosse invocado através do menu Iniciar?

Eu tentei mudar o comando para passar o caminho gvim para cmd.exe /c , mas isso também de alguma forma configura o mesmo ambiente. O que preciso fazer para que isso funcione?

    
por sundar 31.07.2013 / 22:02

2 respostas

3

O gVim.exe procura uma variável HOME quando é executada. No seu caso, o ambiente do Cygwin tem seu próprio HOME var set, então ele está usando isso.

Você pode alterar o valor de HOME em seu ambiente, mas isso pode afetar outros aplicativos. Então, novamente, você pode querer isso. Caso você não queira isso e supondo que seu shell Cygwin esteja usando o shell Bash, já que você já sugeriu em sua pergunta que está procurando criar um alias ou função, eu recomendaria definir o var apenas para esse comando instância, que Bash permite que você faça apenas definindo-o logo antes do comando separado por um espaço ...

VAR=abc command

As execuções acima são command , como se VAR estivesse definido como abc , independentemente do que realmente possa ser. Assim ...

alias gvim='HOME=/cygdrive/c/Users/Sundar /path/to/gvim.exe'

... ou ...

gvim() { HOME=/cygdrive/c/Users/Sundar /path/to/gvim.exe $1; }

... permitiria que você executasse o executável gVim com o HOME var definido para o seu caminho preferido, sem perturbar o ambiente do Cygwin.

    
por 01.08.2013 / 16:25
0

Eu encontrei uma solução mais fácil que rastreia todas as variáveis de ambiente necessárias, embora tenha uma limitação. A solução é dar explorer.exe filename.ext na linha de comando do Cygwin, onde ext é uma extensão que já está associada ao gVim no Windows. Isso abre gVim em um contexto completamente Windows, tanto quanto eu posso ver, $ HOME é definido como C: \ Users \ Sundar automaticamente,: diffsplit funciona sem erro, etc A única limitação deve ser óbvia agora - você precisa ter um arquivo existente com uma extensão associada ao gVim disponível com facilidade, ou isso não funcionará.

Atualização : Enquanto pesquisava sobre isso, me deparei com www.commandlinefu.com/commands/view/2729 (agora mesmo, cache de texto em link ), e descobriu que explorer.exe 'C:\Program Files (x86)\Vim\vim73\gvim.exe' abre gvim de forma confiável, sem depender de associações de arquivos. Agora estou procurando uma maneira de passar argumentos para o gvim aberto dessa maneira.

    
por 11.08.2013 / 18:58