如何configurationGHCi自动导入模块

当我使用GHCi时,我几乎总是最终导入Control.ApplicativeData.List等。 有没有办法configurationGHCi自动导入这些模块。

而且,在导入之后,如何保持提示非常长?

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

GHCi查找它的configuration文件

  • 在类Unix系统上~/.ghc/ghci.conf

  • 在Windows上%APPDATA%\ghc\ghci.conf

configuration文件语法很简单:它是在启动时执行的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 

GHC也将加载它在当前目录中find的任何.ghci文件。 GHCi的每个项目configuration是非常有用的。

这是我从事的一个项目的一个例子:

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

首先是确保Cabal生成的模块易于导入。 第二个隐藏mtl因为这个特定的项目使用transformers