当我使用GHCi时,我几乎总是导致导入Control.Applicative
,Data.List
等。有没有办法配置GHCi自动导入这些模块。
此外,在导入它们之后,如何保持提示不会太长?
Prelude Control.Applicative Data.List Database.HDBC Database.HDBC.Sqlite3 System.Directory>
答案 0 :(得分:47)
GHCi在
中查找其配置文件 ~/.ghc/ghci.conf
。
%APPDATA%\ghc\ghci.conf
。
配置文件语法很简单:它是在启动时执行的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!"
>
另外,如果您决定在GHCi会话中不想Data.Char
,可以使用以下命令将其删除:
:m -Data.Char
如果您决定在会话期间除了Prelude之外不需要任何内容:
:m
答案 1 :(得分:21)
GHC还会加载它在当前目录中找到的任何.ghci
文件。对GHCi的每个项目配置非常有用。
这是我工作的项目的一个例子:
:set -isrc:dist/build/autogen
:set -hide-package mtl
首先要确保Cabal生成的模块易于导入。第二个隐藏mtl
,因为此特定项目使用transformers
。