2010-08-19 12 views
35

Cuando uso GHCi, casi siempre termino importando Control.Applicative, Data.List, etc. ¿Hay alguna manera de configurar GHCi para importar automáticamente esos módulos?Cómo configurar GHCi para importar módulos automáticamente

Además, después de importarlos, ¿cómo puedo evitar que el aviso sea increíblemente largo?

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

Respuesta

44

GHCi busca su archivo de configuración en

  • ~/.ghc/ghci.conf en sistemas Unix.

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

La sintaxis del archivo de configuración es simple: es una lista de comandos GHCi para ejecutar al inicio.

Por ejemplo, su ghci.conf podría contener:

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

:set prompt "> " 

La última línea establece el indicador para "> " por lo que no se mostrará todos los módulos que ha importado en la línea de comandos.

Ahora puede ponerse a trabajar de inmediato:

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!" 
> 

Además, si usted decide que no desea Data.Char en medio de una sesión de GHCi, puede eliminarlo con:

:m -Data.Char 

y si decide que no desea nada más que preludio durante una sesión:

:m 
+0

Parece que no tiene ningún efecto en mi instalación de Win. Parece que ghci.conf no se lee. No tenía este archivo por defecto también – Ghita

+0

en Windows 7 la ruta es:% APPDATA% \ Roaming \ ghc – miro

+0

@fjordrunner: En mi sistema,% APPDATA% se expande a 'C: \ Users \ ja \ AppData \ Roaming' . –

21

GHC una También carga cualquier archivo .ghci que encuentre en el directorio actual. Es muy útil para hacer la configuración por proyecto de GHCi.

Este es un ejemplo de un proyecto de trabajo en:

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

La primera es que hay que asegurarse de que los módulos generados por Cabal son fáciles de importar. El segundo oculta mtl ya que este proyecto en particular usa transformers.

+0

¿Cómo se logra esto en Windows? No puedo nombrar un archivo ".ghci", y parece estar ignorando la configuración en un archivo local "ghci.conf". – crockeea

+0

Obtuve un archivo '.ghci' para trabajar en Windows. Sin embargo, Explorer tampoco me permitió cambiar el nombre del archivo a '.ghci'. Encontramos 2 formas de desplazarse: ** Usando el Bloc de notas: ** En la ventana 'Guardar como' -> Cambiar 'Guardar como tipo' a' Todos los archivos (*. *) 'O agregará una extensión .txt -> Nombre file '.ghci' y pulse save _ ** OR ** _ ** Usando el símbolo del sistema: ** Busque en la carpeta del proyecto Haskell en Explorer -> escriba' cmd' en la barra de direcciones de esa ventana y presione enter. Esto abrirá un símbolo del sistema comenzando en esa carpeta -> 'mv somefile.ghci.ghci' – jhr

Cuestiones relacionadas