Невозможно перепривязать Cx Cs для использования функции, специфичной для режима haskell, поскольку ее определение недействительно
Чтобы выполнить определенные действия при сохранении в режиме haskell, на этой странице рекомендуется повторно связать C-x C-s
связывание клавиш для использования haskell-mode-save-buffer
вместо стандартного save-buffer
команда:
(define-key haskell-mode-map (kbd "Cx Cs") 'haskell-mode-save-buffer)
Предполагаемое поведение заключается в том, чтобы иметь возможность добавлять специфические хуки в режиме haskell к стандартной команде сохранения. Так что я добавил его в свой ~/.emacs
файл.
Но когда я использую эту привязку клавиш в режиме haskell, возникает эта ошибка:
Определение функции символа void: haskell-mode-save-buffer
Я также добавил эту строку в .emacs
файл:
(add-hook 'haskell-mode-hook' haskell-mode-save-buffer)
Но это не помогает. Я думаю, что это ничего не делает, так как haskell-mode'save-buffer
с определением void
так что я думаю, что добавление этого к материалу не поможет. Я также пытался добавить строку
(define-key haskell-mode-map (kbd "Cx Cs") 'haskell-mode-save-buffer)
к haskell-mode.el
сам файл (файл в установленном каталоге (ELPA)), но я действительно не знаю, помогло ли это. Я не в том состоянии, чтобы отлаживать подобные вещи.
Я попытался найти, определена ли эта функция в haskell-режиме вообще. Бег M-x describe-variable "haskell-mode-"
с TAB показывает, что он не существует в этом наборе переменных. РЕДАКТИРОВАТЬ: Как указано в комментариях, я должен использовать describe-function
чтобы попытаться найти эту функцию. Бег M-x describe-function "haskell-mode-"
с TAB показывает, что haskell-mode-save-buffer
здесь не найти Интересно, однако, что здесь перечислены две функции, которые, по-видимому, намекают на возможность обеспечения предполагаемой функциональности:
Haskell-режим-перед тем, копи-обработчик
[...]
Haskell-режим-после-копи-обработчика
Поиск по haskell-mode.el
файл для "haskell-mode-save-buffer" не дает результатов.
Что-то не так с моей стороны, с тем, как я связываю ключ (не было явно упомянуто, что я должен добавить строку к .emacs
во всяком случае, это было только предположение с моей стороны), или этот способ добавления хуков к команде сохранения больше не используется в режиме haskell?
1 ответ
Начиная с этого изменения в haskell-mode, функция haskell-mode-save-buffer
больше не существует, и задачи, которые он использовал для выполнения, автоматически выполняются обработчиками сохранения, настроенными для буферов режима Haskell. Таким образом, совет связывать C-x C-s
в haskell-mode-save-buffer
устарел.