2010-08-19 12 views
35

Quando utilizzo GHCi, quasi sempre si finisce per importare Control.Applicative, Data.List, ecc. C'è un modo per configurare GHCi per importare automaticamente quei moduli.Come configurare GHCi per l'importazione automatica dei moduli

Inoltre, dopo averli importati, come posso evitare che il prompt sia troppo lungo?

Prelude Control.Applicative Data.List Database.HDBC Database.HDBC.Sqlite3 System.Directory> 

risposta

44

GHCi guarda per il suo file di configurazione in

  • ~/.ghc/ghci.conf su sistemi Unix-like.

  • %APPDATA%\ghc\ghci.conf su Windows.

La sintassi del file di configurazione è semplice: è un elenco di comandi GHCi da eseguire all'avvio.

Ad esempio, il ghci.conf potrebbe contenere:

import Control.Applicative 
import Data.Char 
import Data.List 

:set prompt "> " 

L'ultima riga imposta la richiesta di "> " in modo da non mostrare tutti i moduli importati nella riga di comando.

Ora si può arrivare a lavorare subito:

GHCi, version 6.12.1: http://www.haskell.org/ghc/ :? for help 
Loading package ghc-prim ... linking ... done. 
Loading package integer-gmp ... linking ... done. 
Loading package base ... linking ... done. 
> toLower <$> "Hello, world!" 
"hello, world!" 
> 

Inoltre, se si decide che non si desidera Data.Char nel bel mezzo di una sessione GHCi, è possibile rimuoverlo con:

:m -Data.Char 

e se si decide che non si desidera altro che Prelude durante una sessione:

:m 
+0

Non sembra avere alcun effetto sull'installazione di Win. Sembra che ghci.conf non sia letto. Non avevo questo file di default anche – Ghita

+0

in Windows 7 il percorso è:% APPDATA% \ Roaming \ ghc – miro

+0

@fjordrunner: Nel mio sistema,% APPDATA% si espande in 'C: \ Users \ ja \ AppData \ Roaming' . –

21

GHC sarà un caricare anche qualsiasi file .ghci che trova nella directory corrente. È molto utile eseguire la configurazione per progetto di GHCi.

Questo è un esempio da un progetto su cui lavoro:

:set -isrc:dist/build/autogen 
:set -hide-package mtl 

La prima è lì per fare in modo che i moduli generati da Cabal sono facili da importare. Il secondo nasconde mtl poiché questo particolare progetto utilizza transformers.

+0

Come si ottiene che ciò accada in Windows? Non riesco a nominare un file ".ghci" e sembra che ignori le impostazioni in un file "ghci.conf" locale. – crockeea

+0

Ho ottenuto un file '.ghci' per funzionare su Windows. Tuttavia, Explorer non mi ha permesso di rinominare il file in '.ghci'. Hai trovato 2 modi per muoverti: ** Usando il Blocco note: ** Nella finestra "Salva come" -> Cambia "Salva come tipo" su "Tutti i file (*. *)" O aggiungerà un'estensione .txt -> Nome file '.ghci' e premi save _ ** OR ** _ ** Usando il prompt dei comandi: ** Naviga fino alla cartella del progetto Haskell con in Explorer -> digita' cmd' nella barra degli indirizzi di quella finestra e premi invio. Questo aprirà un prompt dei comandi che inizia in quella cartella -> 'mv somefile.ghci .ghci' – jhr

Problemi correlati