.ghci
ファイルGHCiは、開始するとき、-ignore-dot-ghci
フラグが与えられていない限り、以下の各ファイルが存在していれば、この順で読み、書かれているコマンドを実行する。
./.ghci
、ただしappdata
/ghc/ghci.confappdata
はシステムに依存。通常はC:/Documents and Settings/
のようなところ。user
/Application Data
Unixでは、$HOME/.ghc/ghci.conf
$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
の後にロードされる。