trovato questa discussione, ho trovato la risposta da jens inaccettabile. Non stiamo chiedendo di sentirsi dire di non farlo. Non mi piacevano le altre risposte o c'era sempre qualche stranezza, come le impostazioni non utilizzate o un'ulteriore finestra della riga di comando che si apriva. Ho scavato e questo funziona per me. Nessuna casella della riga di comando in più per niente e usa le mie corrette impostazioni di gvim.
alias gvim='HOME=/cygdrive/p/ cygstart /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim74/gvim.exe'
È sufficiente modificare la CASA a proprio. Per scoprire cosa mettere lì lancia gvim da windows poi inserisci ": echo $ HOME" e premi invio nel mio caso mostra P: \ così che si traduce in/cygdrive/p/
Anche se gvim.exe è in una directory/versione diversa che dovrai modificare.
Ora quando digito "gvim script.sh" a un prompt dei comandi di cygwin, avvia gvim con il file, tutto bello e pulito!
UPDATE
ho trovato un modo leggermente migliore per farlo. L'utilizzo dell'alias stava vincolando la mia sessione da cui ho eseguito gvim, volevo che avviasse come processo separato, usando "gvim &" non è inelegante in quanto elenca il numero del lavoro all'avvio e visualizza una riga "completata" una volta completata. Sono troppo pignolo quindi ho capito come ottenere tutto in ordine usando una funzione.
Basta aggiungere questo al file .bash_functions, si basa sulla sezione precedente riguardante la directory home e l'uso di backslash.
gvim() {
ORIGHOME=$HOME
HOME=/cygdrive/p/
/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim74/gvim.exe $1 & disown
HOME=$ORIGHOME
} 2>/dev/null
UPDATE 2 per gli utenti Babun!
Ok poiché dopo aver lottato con questo in origine ho finito per la demolizione del cygwin originale installazione a favore di Babun che sembra essere una configurazione meno fastidioso per coloro che desiderano funzionalità Linux in Windows senza un pieno soffiato virtuale. Naturalmente il mio script di lancio di gvim si è rotto, e ho dovuto fare quanto segue nel mio file .zshrc (babun usa zsh, all'inizio ho resistito e lo ho passato a bash ma poi ho ceduto perché pensavo che dovevano avere una ragione, e lo hanno fatto, io come esso)
gvim() {
OLD_HOME=$HOME
OLD_VIMRUNTIME=$VIMRUNTIME
export HOME=/cygdrive/c/Users/gmitchell/
export VIMRUNTIME="C:\Program Files (x86)\VIM\vim74"
TARGET=$(cygpath -w $1)
(/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim74/gvim.exe $TARGET &)
export HOME=$OLD_HOME
export VIMRUNTIME=$OLD_VIMRUNTIME
}
* Nota: circostanti parentesi curve() si ferma l'ID del processo di fare scherzi il tuo guscio pulito, e non è più necessario il "rinnegare"
PS L'unico fastidio rimanente ora è che non puoi "uscire" dalla shell di babun finché tutte le istanze di gvim che hai lanciato non vengono chiuse. Forse qualcuno può capirlo da solo. Ho provato. Quando digiti exit, si blocca lì finché non avrai terminato tutti i gvims.
Grazie per la tua pignoleria! Funziona proprio come vorrei, con uno svantaggio: HOME è lasciato impostato come vuole gvim, non come vuole la mia shell cygwin. Inoltre, penso per C: \ P, dovresti usare '/ cygdrive/c/P'. – jspencer
Sei corretto sarebbe stato/cygdrive/c/P, ma ho incasinato quando ho digitato che in qualche modo, stava mostrando P: \ come il mio windows homedir viene impostato su un disco P. Non avevo notato il problema con le impostazioni di cygwin vs gvim home, l'ho appena provato e sei corretto che lascia la mia shell cygwin con change $ HOME, correggerò il mio script per portare il $ HOME originale attraverso il comando. – low351
@jspencer, ho appena notato che hai postato una correzione, ben fatto. Grazie per essere così pignolo come me :) Sto usando la tua versione ... – low351