в emacs в режиме haskell -хотел изменить команду
к
Беря пример с:Haskell.org :Emacs/Keybindings и простое использование Я попытался вставить следующие варианты в файл.emacs, но они не сработали. Любые предложения относительно того, как я могу реализовать описанную выше функциональность, будут приветствоваться! Спасибо.
Вариант 1
(defun haskell-hook ()
(define-key haskell-mode-map (kbd "C-x C-s") (kbd "C-x C-s C-c C-l"))
(add-hook 'haskell-mode-hook 'haskell-hook)
Вариант 2
(defun haskell-hook ()
(define-key haskell-mode-map (kbd "C-x C-s") 'my-haskell-mode-save-buffer)
(defun my-haskell-mode-save-buffer ()
(interactive)
(execute-kbd-macro [?\C-s ?\C-x ?\C-c ?\C-l return]))
(add-hook 'haskell-mode-hook 'haskell-hook)
[РЕДАКТ. 1]@Tikhon Jelvis :это определенно было хорошим упражнением для обучения! Спасибо. Используя методы, описанные в вашем посте, я изменил вашу функцию на:
(defun my-haskell-mode-save-buffer ()
(interactive)
(save-buffer)
(inferior-haskell-load-file)
(other-window 1))
где последняя строка программно переключает курсор на интерактивное окно. Спасибо.
[РЕДАКТИРОВАТЬ2]Другие варианты включают:
(defun my-haskell-mode-save-buffer ()
(interactive)
(execute-kbd-macro (read-kbd-macro "C-c C-l"))
(other-window 1))
и:
(defun my-haskell-mode-save-buffer ()
(interactive)
(execute-kbd-macro [?\C-c ?\C-l])
(other-window 1))