Когда я использую GHCi, я почти всегда заканчиваю тем, что импортировал Control.Applicative
, Data.List
и т. Д. Есть ли способ настроить GHCi для автоматического импорта этих модулей.
Кроме того, как после того, как я импортирую их, как сохранить приглашение не слишком длинным?
Prelude Control.Applicative Data.List Database.HDBC Database.HDBC.Sqlite3 System.Directory>
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
GHC также загрузит любой файл .ghci
, который он найдет в текущем каталоге. Очень полезно выполнять настройку GHCi для каждого проекта.
Это пример из проекта, над которым я работаю:
:set -isrc:dist/build/autogen
:set -hide-package mtl
Во-первых, необходимо убедиться, что модули, созданные Кабалом, легко импортировать. Второй скрывает mtl
, поскольку в этом конкретном проекте используются трансформаторы
.