.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
)を有効にしたり、便利なマクロを定義したりするのに適している。注意: このファイルで言語オプションを設定する場合、通常は:set
でなく :seti
を使う方が良い(2.8.3. 対話的評価についてのみのオプションを設定するを見よ)。
.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
についてのその他の助言を読むことが(そしてもちろん、追加することも)できる。
加えて、標準のファイルの後には-ghci-script
フラグで指定されたファイルが全て読まれる。これによってデフォルト以外の.ghciファイルを使うことができる。
開始時ファイルが読まれるかどうかを制御する二つのコマンド行オプションがある。
-ignore-dot-ghci
開始するとき、./.ghci
その他の開始時ファイルを読まない。
-ghci-script
通常の開始ファイルの後に指定されたファイルを読む。繰り返すことで複数の入力を指定できる。