haskellモードのemacsで、コマンドを変更したかった
- 「CxCs」
に
- 「CxCs」の後に「CcCl」が続きます。
: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] @TikhonJelvis:それは間違いなく良い学習演習でした!ありがとう。あなたの投稿で概説されている方法を使用して、私はあなたの関数を次のように変更しました:
(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))