2010-08-19 47 views
35

當我使用GHCi時,我幾乎總是最終導入Control.Applicative,Data.List等。有沒有辦法將GHCi配置爲自動導入這些模塊。如何配置GHCi自動導入模塊

此外,在導入它們後,我如何保持提示非常長?

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

回答

44

GHCI查找它的配置文件在

  • ~/.ghc/ghci.conf在類Unix系統。

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

配置文件的語法很簡單:它是在啓動時執行的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.Char在GHCI會話中間,你可以將其刪除:

:m -Data.Char 

,如果你決定你不想在會話過程中任何東西,但前奏:

:m 
+0

它似乎沒有任何影響我的Win安裝。似乎沒有讀取ghci.conf。我沒有這個文件默認也 – Ghita 2014-07-15 17:54:54

+0

在Windows 7的路徑是:%APPDATA%\ Roaming \ ghc – miro 2015-01-13 07:24:43

+0

@fjordrunner:在我的系統上,%APPDATA%擴展到'C:\ Users \ ja \ AppData \ Roaming' 。 – 2015-01-14 19:06:07

21

GHC會也加載它在當前目錄中找到的任何.ghci文件。 GHCi的每個項目配置非常有用。

這是從項目的例子,我的工作:

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

首先是有確保通過驚天動地生成的模塊易於導入。第二個隱藏mtl,因爲此特定項目使用transformers

+0

你如何在Windows中發生這種情況?我無法命名文件「.ghci」,它似乎忽略了本地「ghci.conf」文件中的設置。 – crockeea 2015-07-21 18:52:24

+0

我有一個'.ghci'文件在Windows上工作。但是,Explorer不會讓我將文件重命名爲'.ghci'。找到2種方式來解決:**使用記事本:**在另存爲窗口中 - >將另存爲類型更改爲所有文件(*。*)'或者它將添加一個.txt擴展名 - >名稱文件'.ghci'並點擊保存_ ** OR ** _ **使用命令提示符:**在資源管理器中瀏覽到Haskell項目的文件夾 - >在該窗口的地址欄中輸入'cmd',然後回車。這將打開一個命令提示符,從該文件夾開始 - >'mv somefile.ghci .ghci' – jhr 2016-03-30 18:10:03