LINUX.ORG.RU

haskell.org сейчас капитально перетряхивается и временами некоторые вещи пропадают. спрашивал в #haskell - сказали что-то про новый сервак и переезды.

shuthdar ★★★ ()
Ответ на: комментарий от ott

C-c C-w is undefined

На всякий случай, вот конфиг

(load «haskell-mode/haskell-site-file»)
(add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indentation)
(setq haskell-font-lock-symbols t)
(require 'inf-haskell)

Не определены вот эти сочетания:
* C-c C-= inserts an = sign and lines up type signatures and other pattern matches nicely.
* C-c C-| inserts a guard
* C-c C-o inserts a guard | otherwise = and lines up existing guards
* C-c C-w inserts a where keyword
* C-c C-. aligns code over a region in a «sensible» fashion.

cathode ()
Ответ на: комментарий от cathode

стоит добавить еще turn-on-haskell-indent, или явно загрузить haskell-indent.el — эти сочетания определены в этом файле

ott ★★★★★ ()
Ответ на: комментарий от ott

Доброго времени суток.

Столкнулся с такой проблемой. При попытке загрузить файл исходного кода командой C-c C-l в фоне запускается буфер *haskell* (при этом сам файл не загружается) в минибуфере появляются сообщения «Saving file FILENAME...» и «Wrote FILENAME...», при этом ввод и любые другие действия блокируются, пока дважды не нажмешь C-g. То же самое происходит для команд C-c C-t и C-c C-i. Я правильно понял, что выполнение команды inferior-haskell-load-file для файла FILENAME эквивалентно выполнению в ghci команды :load FILENAME?

Для haskell-mode использую следующий хук:

(defun my-haskell-mode-hook ()
  (turn-on-haskell-doc-mode)
  (turn-on-haskell-indentation)
  (turn-on-haskell-indent)
  (setq haskell-font-lock-symbols t))

И еще парочка (наверное, нубских) вопросов:

  1. haskell-hoogle использует по умолчанию браузер lynx. Можно ли заставить его использовать elinks?
  2. При попытке набрать C-c C-= в минибуфере отображается C-c = is undefined. Как набрать комбинацию Ctrl+= в emacs (или Ctrl+|)?

Заранее спасибо за ответы.

theNamelessOne ★★★★★ ()
Ответ на: комментарий от theNamelessOne

>> в фоне запускается буфер *haskell*

А ghci в буфере запускается? Если нет то (setq haskell-program-name «/some/where/ghci.exe»)


И кстати, по рекоммендациям из доки, нужно задействовать только один из модулей индента.

При попытке набрать C-c C-= в минибуфере отображается C-c = is undefined. Как набрать комбинацию Ctrl+= в emacs (или Ctrl+|)?


C-c C-| набирается как Ctrl+C Ctrl+Shift+кнопка с палкой
Аналогично C-c C-= это Ctrl+c Ctrl+=

cathode ()
Ответ на: комментарий от cathode

А ghci в буфере запускается? Если нет то (setq haskell-program-name «/some/where/ghci.exe»)

Запускается.

C-c C-| набирается как Ctrl+C Ctrl+Shift+кнопка с палкой

Аналогично C-c C-= это Ctrl+c Ctrl+=

В том и дело, что так и набираю, и получаю в одном случае «C-c = undefined» и в другом «C-c C-\ undefined»

theNamelessOne ★★★★★ ()
Ответ на: комментарий от cathode

.emacs:

;; -*-Emacs-Lisp-*-

;;(set-language-environment 'UTF-8)
;;(set-terminal-coding-system 'utf-8)
;;(set-keyboard-coding-system 'utf-8)
;;(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))
;;(prefer-coding-system 'utf-8-unix)

(load "~/.emacs.d/common.el")

(load "~/.emacs.d/copypaste.el")
(load "~/.emacs.d/ccmode.el")
(load "~/.emacs.d/haskell.el")
(load "~/.emacs.d/common-lisp.el")

(setq inhibit-startup-message t)
(menu-bar-mode 0)

(setq compile-command "make")

common.el:

(require 'linum)

(defun my-common-prog-hook ()
  (local-set-key "\C-c\C-c" 'compile)
  (setq linum-format "%5d ")
  (linum-mode 1))

copypaste.el:

(setq x-select-enable-clipboard t)
(unless window-system

  (defun xsel-cut-function (text &optional push)
    (with-temp-buffer
      (insert text)
      (call-process-region (point-min)
			   (point-max)
			   "xsel" nil 0 nil "--clipboard" "--input")))

  (defun xsel-paste-function()
    (let ((xsel-output (shell-command-to-string "xsel --clipboard --output")))
      (unless (string= (car kill-ring) xsel-output)
	xsel-output )))

  (setq interprogram-cut-function 'xsel-cut-function)
  (setq interprogram-paste-function 'xsel-paste-function))

ccmode.el:

(setq c-default-style "linux"
      c-basic-offset 4)

(defun my-c-mode-common-hook ()
  (c-toggle-auto-newline 1)
  (setq indent-tabs-mode t))
(add-hook 'c-mode-common-hook 'my-common-prog-hook)
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)

haskell.el:

(defun my-haskell-mode-hook ()
  (turn-on-haskell-doc-mode)
  (turn-on-haskell-indentation)
  (turn-on-haskell-indent)
  (setq haskell-font-lock-symbols t))
(add-hook 'haskell-mode-hook 'my-common-prog-hook)
(add-hook 'haskell-mode-hook 'my-haskell-mode-hook)

common-lisp.el:

(setq inferior-lisp-program "/usr/bin/sbcl")
(setq slime-net-coding-system 'utf-8-unix)
theNamelessOne ★★★★★ ()
Ответ на: комментарий от cathode

> М-да... Фигня какая-то... У в haskell-mode у тебя shift вообще работает?

Если просто при вводе текста - то да, символы верхнего регистра вводятся. А если вместе с Ctrl - то нет. К примеру, C-H нажимается как C-h (а при нажатии C-= просто вводится символ '='). В cc-mode то же самое.

theNamelessOne ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.