2010-08-19 26 views
35

Khi tôi sử dụng GHCi, tôi hầu như luôn kết thúc nhập Control.Applicative, Data.List, v.v. Có cách nào để cấu hình GHCi để tự động nhập các mô-đun đó không.Cách định cấu hình GHCi để tự động nhập mô-đun

Ngoài ra, sau khi nhập chúng, làm cách nào để giữ cho lời nhắc khỏi bị kéo dài một cách điên rồ?

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

Trả lời

44

GHCi tìm kiếm tập tin cấu hình của nó tại

  • ~/.ghc/ghci.conf trên các hệ thống Unix-like.

  • %APPDATA%\ghc\ghci.conf trên Windows.

Cú pháp tệp cấu hình đơn giản: đó là danh sách các lệnh GHCi để thực thi khi khởi động.

Ví dụ, ghci.conf của bạn có thể bao gồm:

import Control.Applicative 
import Data.Char 
import Data.List 

:set prompt "> " 

Dòng cuối cùng đặt dấu nhắc để "> " vì vậy nó sẽ không hiển thị tất cả các module bạn nhập trên dòng lệnh.

Bây giờ bạn có thể bắt đầu làm việc ngay lập tức:

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

Ngoài ra, nếu bạn quyết định không muốn Data.Char ở giữa một phiên GHCi, bạn có thể xóa nó bằng:

:m -Data.Char 

và nếu bạn quyết định bạn không muốn bất cứ điều gì nhưng Prelude trong một phiên:

:m 
+0

Dường như nó không ảnh hưởng đến cài đặt Win của tôi. Có vẻ như ghci.conf không được đọc. Tôi không có tệp này theo mặc định cũng là – Ghita

+0

trong cửa sổ 7 đường dẫn là:% APPDATA% \ Roaming \ ghc – miro

+0

@fjordrunner: Trên hệ thống của tôi,% APPDATA% mở rộng thành 'C: \ Users \ ja \ AppData \ Roaming' . –

21

GHC sẽ một lso tải bất kỳ tệp .ghci nào tìm thấy trong thư mục hiện tại. Rất hữu ích khi thực hiện cấu hình theo từng dự án của GHCi.

Đây là một ví dụ từ một dự án tôi làm việc trên:

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

Đầu tiên là có để đảm bảo rằng các module được tạo ra bởi Cabal là dễ dàng để nhập khẩu. Cái thứ hai giấu mtl vì dự án cụ thể này sử dụng transformers.

+0

Làm thế nào để bạn có được điều này xảy ra trong Windows? Tôi không thể đặt tên một tập tin ".ghci", và nó có vẻ là bỏ qua các thiết lập trong một tập tin "ghci.conf" địa phương. – crockeea

+0

Tôi có tệp '.ghci' để hoạt động trên Windows. Tuy nhiên, Explorer sẽ không cho phép tôi đổi tên tệp thành '.ghci'. Đã tìm thấy 2 cách để sử dụng: ** Sử dụng Notepad: ** Trong cửa sổ 'Save as' -> Thay đổi 'Save as type' thành' All files (*. *) 'Hoặc nó sẽ thêm phần mở rộng .txt -> file '.ghci' và nhấn save _ ** OR ** _ ** Sử dụng Command Prompt: ** Duyệt thư mục của dự án Haskell bằng Explorer -> gõ' cmd' vào thanh địa chỉ của cửa sổ đó và nhấn Enter. Điều này sẽ mở một dấu nhắc lệnh bắt đầu trong thư mục đó -> 'mv somefile.ghci .ghci' – jhr

Các vấn đề liên quan