43

私が GHCi を使うときは、ほとんどの場合Control.ApplicativeData.List、 などをインポートすることになります。これらのモジュールを自動的にインポートするようにGHCiを構成する方法はありますか?

また、それらをインポートした後、プロンプトが非常に長くならないようにするにはどうすればよいですか?

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

2 に答える 2

55

GHCi はその構成ファイルを次の場所で探します。

  • ~/.ghc/ghci.confUnix ライクなシステムで。

  • %APPDATA%\ghc\ghci.confWindows で。

構成ファイルの構文は単純です。これは、起動時に実行する 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.CharGHCi セッションの途中で不要になった場合は、次のようにして削除できます。

:m -Data.Char

セッション中に Prelude 以外は必要ないと判断した場合は、次のようにします。

:m
于 2010-08-19T04:08:50.190 に答える
23

GHCは.ghci、現在のディレクトリで見つかったすべてのファイルもロードします。GHCiのプロジェクトごとの構成を行うことは非常に便利です。

これは私が取り組んでいるプロジェクトの例です。

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

1つ目は、Cabalによって生成されたモジュールを簡単にインポートできるようにするためです。mtlこの特定のプロジェクトはを使用しているため、2番目は非表示になりますtransformers

于 2010-08-19T11:45:23.087 に答える