Невозможно перепривязать 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 устарел.

Другие вопросы по тегам