我想在auto-complete
中启用org-mode
for Babel代码块:
#+begin_src emacs-lisp
(setq ) <--- language-aware auto-completion here
#+end_src
我需要添加到.emacs
文件中才能配置auto-complete
来执行此操作?
最强大(并且完全不是特定于org-mode
)的方法涉及indirect buffer
。 Here's是一篇博客文章,深入介绍了间接缓冲。基本上,间接缓冲区镜像另一个缓冲区的一部分的内容。
(defun narrow-to-region-indirect (start end)
"Restrict editing in this buffer to the current region, indirectly."
(interactive "r")
(deactivate-mark)
(let ((buf (clone-indirect-buffer nil nil)))
(with-current-buffer buf
(narrow-to-region start end))
(switch-to-buffer buf)))
此时,您将拥有一个包含先前创建的区域的新缓冲区。您可以为该缓冲区启用主要模式并进行编辑以使您满意 - 您所做的更改(就像任何好的镜像应该做的那样)反映在原始文档中。
当您在代码块中时,可以使用C-c C-v z
切换到具有正确模式的专用会话和自动完成。
C-c C-v z
或C-c C-v
org-babel-switch-to-session-with-code
有关详细信息,请查看组织文档14.11键绑定和有用函数。
迟到了,但今天默认(以及没有其他黑客的推荐方式)是使用'org-edit-special切换到专用的elisp缓冲区,现在映射到
C-c-'
点击同样返回你的组织文件编辑。