我想为 init.el 文件设置 outline-minor-mode ,并在开头的行上按 TAB 键; 应调用函数 outline-toggle-children 以折叠和展开子标题。
以下是hook的代码。但它不能像预期的那样对“TAB”键绑定起作用。
(add-hook 'emacs-lisp-mode-hook
(lambda ()
(if (equal (buffer-name) "init.el")
(progn
(outline-regexp "^;+")
(outline-minor-mode 1)
(local-set-key (kbd "TAB") ; this does not work
(lambda ()
(if (string-match outline-regexp (thing-at-point 'line))
(outline-toggle-children))))))))
答案 0 :(得分:0)
我认为你得到的错误是wrong-type-argument commandp
。这是因为绑定到键的函数必须是“交互”函数。您需要向函数添加(interactive)
声明,以便Emacs知道如何调用函数以响应事件:
(lambda ()
(interactive)
(if (string-match outline-regexp (thing-at-point 'line))
(outline-toggle-children)))