2010-08-19 2 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에서 구성 파일을 찾습니다.

  • %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!" 
> 

을 당신이 GHCi 세션의 중간에 Data.Char을하지 않으 결정하는 경우에, 당신은 그것을 제거 할 수 있습니다 :

지금 당신은 바로 작동시킬 수

:m -Data.Char 

당신은 당신이 세션 동안 서곡하지만 아무것도하지 않으 결정하는 경우 :

:m 
+0

Win 설치에 영향을주지 않는 것 같습니다. ghci.conf가 읽히지 않은 것 같습니다. 이 파일은 기본적으로 – Ghita

+0

도 Windows 7에 없었습니다. % APPDATA % \ Roaming \ ghc – miro

+0

@fjordrunner : 내 시스템에서 % APPDATA %는 'C : \ Users \ ja \ AppData \ Roaming'으로 확장됩니다. . –

21

GHC을 것이다 lso는 현재 디렉토리에있는 .ghci 파일을로드합니다. GHCi의 프로젝트 별 설정은 매우 유용합니다.

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

첫 번째 음모에 의해 생성 된 모듈을 수입하기 쉬운 있는지 확인이 :

내가 작업 프로젝트의 예입니다. 이 두 번째 프로젝트는 transformers을 사용하기 때문에 mtl을 숨 깁니다.

+0

Windows에서 어떻게 이런 일이 발생합니까? ".ghci"파일의 이름을 지정할 수 없으며 로컬 "ghci.conf"파일의 설정을 무시하는 것으로 보입니다. – crockeea

+0

Windows에서 작동하는'.ghci' 파일이 있습니다. 그러나 익스플로러는 파일 이름을'.ghci'로 바꾸지 않습니다. ** 메모장 사용 : ** '다른 이름으로 저장'창에서 '모든 파일 (*. *)'에'Save as type '을 변경하거나 .txt 확장자 -> 이름을 추가합니다. '.ghci' 파일을 만들고 save를 누르십시오. ** or ** _ ** 명령 프롬프트를 사용하십시오 : ** Explorer에서 Haskell 프로젝트 폴더를 찾으십시오 -> 그 창의 주소창에'cmd'를 입력하고 Enter를 누르십시오. 그러면 해당 폴더에서 시작하는 명령 프롬프트가 열립니다. ->'mv somefile.ghci .ghci' – jhr