在 org-mode 文件中,代码如下:
#+begin_src emacs-lisp
(add-to-list 'org-tab-before-tab-emulation-hook
(lambda ()
(when (within-the-body-of-a-begin-src-block)
(indent-for-tab-command--as-if-in-lisp-mode))))
#+end_src
我希望 TAB 键缩进代码,就像它在 lisp 模式下的缓冲区中一样。
我需要的是:
- 一种判断光标是否在 src 块内的方法。它不需要在标题行本身上触发,因为在这种情况下应该发生默认的组织折叠。
- 一种根据标头中指定的模式(在本例中为 emacs-lisp)缩进代码的方法。
Org 已经可以根据模式语法高亮 src 块,并且 TAB 钩子在那里。这看起来可行。