Haskell Emacs haskell-mode: запустите Ch f haskell-mode, чтобы узнать, как настроить режим взаимодействия на Haskell. - PullRequest
0 голосов
/ 07 июня 2019

Я следую учебному пособию в https://learnhaskell.blogspot.com/2007/09/lesson-1-hello-world.html

Я следовал всем инструкциям, но на emacs, когда я набираю C-c C-l, я получаю Run 'C-h f haskell-mode' for instruction how to setup a Haskell interaction mode

Когда я набираю это, у меня появляется страница, которая не очень полезна.

Что мне делать дальше? Я следовал инструкциям, приведенным в руководстве, за исключением удаления номеров версий для ghi, emacs для apt.

Мой .emacs файл выглядит так же, как в блоге.

;; Font Locking, Programming Modes, and Compilation settings
;;

(global-font-lock-mode 1)
;; maximum colors
(setq font-lock-maximum-decoration t)

;; extra key bindings
(global-set-key "\M-C" 'compile)
(global-set-key "\C-^" 'next-error)
(global-set-key "\C-\M-g" 'goto-line)

;; use spaces instead of tabs
(setq-default indent-tabs-mode nil)

;; haskell mode configuration
(setq auto-mode-alist
      (append auto-mode-alist
              '(("\\.[hg]s$"  . haskell-mode)
                ("\\.hic?$"     . haskell-mode)
                ("\\.hsc$"     . haskell-mode)
  ("\\.chs$"    . haskell-mode)
                ("\\.l[hg]s$" . literate-haskell-mode))))
(autoload 'haskell-mode "haskell-mode"
   "Major mode for editing Haskell scripts." t)
(autoload 'literate-haskell-mode "haskell-mode"
   "Major mode for editing literate Haskell scripts." t)

;adding the following lines according to which modules you want to use:
(require 'inf-haskell)

(add-hook 'haskell-mode-hook 'turn-on-font-lock)
;(add-hook 'haskell-mode-hook 'turn-off-haskell-decl-scan)
;(add-hook 'haskell-mode-hook 'turn-off-haskell-doc-mode)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indent)
;(add-hook 'haskell-mode-hook 'turn-on-haskell-simple-indent)
;(add-hook 'haskell-mode-hook 'turn-on-haskell-hugs)
(add-hook 'haskell-mode-hook 'turn-on-haskell-ghci)
(add-hook 'haskell-mode-hook 
   (function
    (lambda ()
      (setq haskell-program-name "ghci")
      (setq haskell-ghci-program-name "ghci6"))))

1 Ответ

1 голос
/ 08 июня 2019

Необходимо включить вспомогательный режим interactive-haskell-mode, чтобы открыть интерактивный сеанс между буфером кода на Haskell и интерпретатором Haskell.Вы можете включить этот режим для текущего буфера с помощью команды M-x interactive-haskell-mode.

. Чтобы включить этот режим для каждого открытого вами файла Haskell, вы можете установить хук haskell-mode, который будет запускать эту команду (т.е. будетenable interactive-haskell-mode) каждый раз, когда haskell-mode включено.Следующая строка должна быть добавлена ​​в ваш файл .emacs:

(add-hook 'haskell-mode-hook 'interactive-haskell-mode)
...