Jak skonfigurować GHCi do automatycznego importowania modułów

Kiedy używam GHCi, prawie zawsze kończę importowanie Control.Applicative, Data.List, itd. . Czy istnieje sposób skonfigurowania GHCi do automatycznego importowania tych modułów.

Również, po zaimportowaniu ich, jak mogę utrzymać monit z szalenie długi?

Prelude Control.Applicative Data.List Database.HDBC Database.HDBC.Sqlite3 System.Directory>
Author: casperOne, 2010-08-19

2 answers

GHCi szuka swojego pliku konfiguracyjnego w

  • ~/.ghc/ghci.conf na systemach uniksopodobnych.

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

Składnia pliku konfiguracyjnego jest prosta: jest to lista komend GHCi do wykonania przy starcie.

Na przykład Twoje {[6] } może zawierać:

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

:set prompt "> "

Ostatnia linia ustawia znak zachęty na "> ", więc nie wyświetli wszystkich zaimportowanych modułów w wierszu poleceń.

Teraz możesz dostać się do pracy prawo daleko:

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

Ponadto, jeśli zdecydujesz, że nie chcesz Data.Char w środku sesji GHCi, możesz ją usunąć za pomocą:

:m -Data.Char

A jeśli zdecydujesz, że nie chcesz niczego poza Preludium podczas sesji:

:m
 46
Author: Joey Adams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-04 04:00:29

GHC załaduje również dowolny plik .ghci, który znajdzie w bieżącym katalogu. Bardzo przydatna jest konfiguracja GHCi dla poszczególnych projektów.

Oto przykład z projektu, nad którym pracuję:

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

Pierwszy jest tam, aby upewnić się, że moduły generowane przez Cabal są łatwe do zaimportowania. Drugi ukrywa mtl, ponieważ ten konkretny projekt używa transformers.

 21
Author: Magnus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-19 11:45:23