2011-11-01 14 views
12

Bir Haskell dosyasında, geçerli dosyayı GHCI yorumlayıcısına yüklemesi amaçlanan inferior-haskell-load-file komutunu kullanmak için C-c C-l kullanın, ancak Emacs yalnızca I C-g. Bunu nasıl başarabileceğimi bilen var mı? haskell mod sürümü v2.7.0Emacs, inferior-haskell-load dosya çağrısı olan haskell-modunda kilitleniyor

kullanarak Debian

modifiye

GNU Emacs 23.3.1 (x86_64-pc-Linux-gnu, GTK + Versiyon 2.24.5) yenibahar üzerinde 2011-08-14 bölgesinin

+1

Özel bir '.ghci' dosyanız var mı? Bu, özellikle komut istemini değiştirirseniz, karışabilir ... Aksi takdirde, "emacs -Q" ile başlatırsanız ve sonra sadece varsayılanları açıkça yüklerseniz bir sorun mu yaşıyorsunuz? – ivanm

+0

@ivanm bu kadardı! Cevap olarak ekleyin lütfen. –

cevap

11

Bu nedenle, .ghci dosyasındaki istemini değiştirirseniz, bunu algılayamaz. haskell-ghci.el bir istem olduğunu belirlemek için comint-prompt-regexp değerini ayarlar nerede

fazla bilgi için, bkz. Eğer .ghci dosyasında ayarı tutmak isterseniz

;; GHCi prompt should be of the form `ModuleName> '. 
(setq comint-prompt-regexp 
     "^\\*?[[:upper:]][\\._[:alnum:]]*\\(\\*?[[:upper:]][\\._[:alnum:]]*\\)*> ") 

, o zaman bu ayarları özelleştirmek mümkün olabilir.

+0

Harika bahşiş. Çok teşekkürler. Bana bir ton başım ağrıyorsun. –

+0

Birçoğumuz bunu .ghci: ': komut satırında" λ> "' dır. Kalıpta varsayılan olarak λ eklemek hoş olurdu. – gawi

+0

"λ>" kabul etmek için regexp'i değiştirmeye çalışmaktan şansım yok. Bu biraz regexp olmayan ascii sorunu olmalı ... – gawi

0

GHCi'nin başlatma sırasında bir tür hata bildirmesiyle benzer bir sorun yaşadım ve Emacs haskell modunun GHCi istemini süresiz olarak beklemesine neden oldu (GHCi standart istemini göstermedi (Prelude>), ancak yalnızca > gösterdi). GHCi'yi harici olarak çalıştırmayı deneyebilir ve herhangi bir hatayı bildirip bildirmediğini görebilirsiniz. Inferior-haskell-mode, beklenen ghci komutunu temel alan bazı ayrıştırma yapar.

+0

Hata bildiriyor gibi görünmüyor. Ne tür hatalar ve özellikle ne demek istiyorsun? –

3

Eski soru, ama bugün bu işe yeni girdiğim gibi, bunu anladığımdan beri, comint-prompt-regexp'u nasıl özelleştireceğimi paylaşmak istedim.

Bu özelleştirme, λ> istemlerini veya aslında >'dan önceki herhangi bir karakteri tanıyacaktır, ancak varolan normal ifadeyi bozmaz. senin .emacs yılında:

(load-library "inf-haskell") 

(defun my-inf-haskell-hook() 
    (setq comint-prompt-regexp 
     (concat comint-prompt-regexp "\\|^.> "))) 

(add-to-list 'inferior-haskell-mode-hook 'my-inf-haskell-hook) 

daha uzun bir istemi tanımak için "\\|^.> " için daha fazla nokta ekleyebilir, ama basitlik için bunu sabit uzunlukta tutmak istedi.

0

Yığınları emacs ile kullanmaya çalıştığımda aynı hata mesajını aldım. Benim için bu satırı benim .emacs/init.el dosyasına eklemek sorunu çözdü:

(setq haskell-program-name "stack ghci")