Как настроить GHCi для автоматического импорта модулей - PullRequest
36 голосов
/ 19 августа 2010

Когда я использую GHCi, я почти всегда импортирую Control.Applicative, Data.List и т. Д.Есть ли способ настроить GHCi для автоматического импорта этих модулей.

Кроме того, как после импорта их сохранить длинную строку приглашения?

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

Ответы [ 2 ]

47 голосов
/ 19 августа 2010

GHCi ищет свой файл конфигурации в

  • ~/.ghc/ghci.conf в Unix-подобных системах.

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

Синтаксис файла конфигурации прост: это список команд GHCi, которые нужно выполнить при запуске.

Например, ваш ghci.conf может содержать:

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

:set prompt "> "

В последней строке задается приглашение "> ", поэтому в нем не отображаются все модули, импортированные вами из командной строки.

Теперь вы можете сразу приступить к работе:

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

Кроме того, если вы решите, что не хотите Data.Char в середине сеанса GHCi, вы можете удалить его с помощью:

:m -Data.Char

и если вы решите, что не хотите ничего, кроме Prelude во время сеанса:

:m
21 голосов
/ 19 августа 2010

GHC также загрузит любой файл .ghci, найденный в текущем каталоге.Очень полезно выполнить настройку GHCi для каждого проекта.

Это пример проекта, над которым я работаю:

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

Первый - убедиться, что модули, сгенерированныеКабал легко импортировать.Второй скрывает mtl, так как этот конкретный проект использует transformers.

...