在haskell-mode的emacs中,我想更改命令
- “Cx Cs”
到
- “Cx Cs”后跟“Cc Cl”。
从: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))
最后一行以编程方式将光标切换到交互式窗口。谢谢你。
[EDIT2]其他变体包括:
(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))