【问题标题】:How to enable auto-complete in Emacs Org-babel?如何在 Emacs Org-babel 中启用自动完成?
【发布时间】:2013-01-20 04:13:21
【问题描述】:

我想为org-mode中的Babel代码块启用auto-complete

#+begin_src emacs-lisp
(setq )                 <--- language-aware auto-completion here
#+end_src

我需要向我的.emacs 文件添加什么才能配置auto-complete 来执行此操作?

【问题讨论】:

  • 您可以使用 C-c 'bring up a new window 与您的源代码和相应的主要模式。
  • 这也是个好办法。
  • @Juancho 我认为您应该发布(但详细说明)作为答案。
  • 至少你可以让 tab 像这样充当原生模式。 (setq org-src-tab-acts-natively t)

标签: emacs autocomplete org-mode babeljs


【解决方案1】:

聚会迟到了,但今天默认(并且推荐的方式没有其他黑客)是使用今天映射到的 'org-edit-special 切换到该“大块”的专用 elisp 缓冲区

C-c-'

点击相同返回到您的组织文件编辑。

【讨论】:

    【解决方案2】:

    您可以切换到具有正确模式和自动完成功能的专用会话 当您在代码块中时,只需使用C-c C-v z

    C-c C-v zC-c C-v org-babel-switch-to-session-with-code

    查看 org-documentation 14.11 键绑定和有用功能以获取更多信息。

    【讨论】:

      【解决方案3】:

      执行此操作的最强大(并且完全不是org-mode 特定)方法涉及indirect bufferHere'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)))
      

      此时,您将拥有一个包含您之前创建的区域的新缓冲区。您可以为该缓冲区启用主要模式并进行满意的编辑 - 您所做的更改(就像任何好的镜像应该做的那样)反映在原始文档中。

      【讨论】:

      • 这是一种更通用的解决方案。
      • 有点意思。方法总是不止一种。我的不一样。利弊以一种或另一种方式平衡......
      • 我今天推荐我在下面的回复中提到的 'org-edit-special (C-c ')。
      猜你喜欢
      • 1970-01-01
      • 2013-04-07
      • 2023-03-12
      • 2014-03-29
      • 1970-01-01
      • 2015-10-05
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多