2.9. .ghciファイル

GHCiは、開始するとき、-ignore-dot-ghciフラグが与えられていない限り、以下の各ファイルが存在していれば、この順で読み、書かれているコマンドを実行する。

  1. ./.ghci

  2. appdata/ghc/ghci.conf、ただしappdataはシステムに依存。通常はC:/Documents and Settings/user/Application Dataのようなところ。

  3. Unixでは、$HOME/.ghc/ghci.conf

  4. $HOME/.ghci

ghci.confファイルは、あなたのお気に入りのオプション(例えば:set +s)を有効にしたり、便利なマクロを定義したりするのに適している。また、.ghciをHaskellプロジェクトのディレクトリに置いて、プロジェクトで使われるオプションを設定するようにしておくと、GHCiを立ち上げるたびにそれを打ち込まなくて済むので便利である。例えば、プロジェクトが多引数の型クラスとスコープのある型変数ととCPPを使い、ソースファイルがA、B、Cという三つのサブディレクトリに置かれているなら、次の数行を.ghciに置くことができる。

:set -XMultiParamTypeClasses -XScopedTypeVariables -cpp
:set -iA:B:C

(厳密には-iフラグは静的オプションであるが、このように:setしても動くことに注意。ただし、この変更は、次に:loadが実行されるまで効果を発揮しない。)

GHCiマクロを沢山持つようになると、それらを別のファイルから調達したいと思うかもしれない。また、.ghciファイルをデバッグしているときに、それを実行中のGHCiにロードしたいと思うことがあるかもしれない。

:def source readFile

あなたの.ghciにこのマクロを置いておけば、:source fileとすることでfileからGHCiコマンドを読み込むことができる。Haskell wikiのページGHC/GHCiでは、.ghciについてのその他の助言を読むことが(そしてもちろん、追加することも)できる。

開始時ファイルが読まれるかどうかを制御する二つのコマンド行オプションがある。

-ignore-dot-ghci

開始するとき、./.ghciその他の開始時ファイルを読まない。

-read-dot-ghci

.ghciその他の開始時ファイル(上記)を読む。通常これがデフォルトであるが、-read-dot-ghciは前に指定された-ignore-dot-ghciを上書きするのに使うことができる。

-ghci-scriptオプションを使うと、別に.ghciを追加することができる。これらは通常の.ghciの後にロードされる。