【发布时间】:2014-12-05 09:52:30
【问题描述】:
我可以在活动的 haskell 会话期间或开始新会话时打开 haskell-process-type 吗?
【问题讨论】:
标签: haskell emacs haskell-mode
我可以在活动的 haskell 会话期间或开始新会话时打开 haskell-process-type 吗?
【问题讨论】:
标签: haskell emacs haskell-mode
是的,只需在缓冲区中输入以下内容,然后输入C-x C-e(假设cabal-repl 是您的默认设置)。
(setq haskell-process-type 'ghci)
在我的.emacs 中,我实际上有这个让这件事变得简单,因为我经常这样做:
(define-key haskell-mode-map (kbd "C-c h t")
(lambda () (interactive)
(progn
(setq haskell-process-type 'ghci)
(message "Now in ghci mode."))))
然后另一个C-c C-l 将以正确的模式加载您的交互式缓冲区。
编辑:现在使用haskell-mode-map。
【讨论】:
(define-key haskell-mode-map ...) 也可以吗?
C-x C-e 来评估吗?
haskell-mode-map。
最后我扩展fosskers回答了一下!
切换进程类型的函数:
(defvar haskell-process-use-ghci nil)
(defun haskell-process-toggle ()
"Toggle GHCi process between cabal and ghci"
(interactive)
(if haskell-process-use-ghci
(progn (setq haskell-process-type 'cabal-repl)
(setq haskell-process-use-ghci nil)
(message "Using cabal repl"))
(progn (setq haskell-process-type 'ghci)
(setq haskell-process-use-ghci t)
(message "Using GHCi"))))
和一个haskell-mode特定的键绑定:
(define-key haskell-mode-map (kbd "C-c C-h C-t") 'haskell-process-toggle)
【讨论】:
haskell-mode-map 更好用。此外,您可以直接在haskell-process-type 上进行测试,而不是defvar,例如:(if (equal 'ghci haskell-process-type) ...)