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>
2 answers
GHCi szuka swojego pliku konfiguracyjnego w
~/.ghc/ghci.conf
na systemach uniksopodobnych.%APPDATA%\ghc\ghci.conf
na Windows.
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
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
.
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