3 votos

¿Cómo ejecutar Windows ' gvim en un entorno de Windows desde dentro de Cygwin?

Cuando me dan un gvim comando en Cygwin, la quiero para invocar el gvim he instalado en mi Windows.

Traté de escribir una función en mi .bashrc llamado gvim que invoca el gvim.exe en mi carpeta de Archivos de Programa, usando cygpath y todo eso, pero el problema es que, al parecer, se invoca el gvim con Cygwin del medio ambiente; :echo $HOME impresiones C:\cygwin\home\Sundar en lugar de C:\Users\Sundar y, :diffsplit informa de los fallos en la creación de archivos temporales que supongo que son las relacionadas con el mismo. Así que, ¿cómo puedo invocar gvim de Cygwin, pero lo hacen como si se invoca a través de, digamos, el menú de Inicio?

He intentado cambiar el comando para pasar el gvim camino de cmd.exe /c, sino que también de alguna manera establece el mismo entorno. ¿Qué tengo que hacer para hacer este trabajo?

3voto

BrijeshTrivedi Puntos 16

gVim.exe busca un HOME variable cuando se ejecuta. En su caso, el entorno Cygwin tiene su propia HOME var establecido, por lo que es el uso que.

Usted puede cambiar el HOME valor en su entorno, pero que podría afectar a otras aplicaciones. A continuación, de nuevo, puede que desee. En caso de que usted no quiere eso y suponiendo que el Cygwin shell está usando el shell Bash, como ya ha sugerido en su pregunta que usted está mirando para crear un alias o función, yo recomendaría el establecimiento de la var sólo para que la instancia de comando, que Bash permite hacer con sólo la creación de justo antes de los comandos separados por un espacio...

VAR=abc command

El de arriba se ejecuta command como si VAR estaba a abc, independientemente de lo que podría ser en realidad. Por lo tanto...

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

... o...

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

...iba a permitir que se ejecute el gVim ejecutable con el HOME var establece en su camino preferido, sin alterar su entorno Cygwin.

0voto

Jayraj Puntos 160

He encontrado una solución más fácil que el rastreo de todas las variables de entorno necesarias, a pesar de que tiene una limitación. La solución es dar explorer.exe filename.ext en el Cygwin línea de comandos, donde ext es una extensión que ya está asociada con gVim bajo Windows. Esto abre gVim en un completamente contextual de Windows por lo que puedo ver, $HOME se establece en C:\Users\Sundar automáticamente, :diffsplit funciona con ningún error, etc. La limitación debe ser obvio ahora - se debe tener un archivo existente con un gVim asociada a la extensión fácilmente disponible, o no funcionará.

Actualización: buscando en google, Mientras con respecto a esto, me encontré con www.commandlinefu.com/commands/view/2729 (abajo a la derecha ahora, sólo de texto en caché http://webcache.googleusercontent.com/search?strip=1&q=cache:http%3A%2F%2Fwww.commandlinefu.com%2Fcommands%2Fview%2F2729 ), y se encontró que explorer.exe 'C:\Program Files (x86)\Vim\vim73\gvim.exe' abre gvim de forma fiable, sin tener que depender de las asociaciones de archivo. Ahora estoy buscando una forma de pasar argumentos a la gvim abrió de esta manera.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: