繁体   English   中英

更改代码块的 emacs 组织模式键绑定

[英]Change emacs org-mode key binding for code block

在组织模式下,我使用<s然后使用TAB插入代码块。 此操作将插入一个代码块,如

 #+BEGIN_SRC
    .
    .
    .
 #+END_SRC

但我想修改这个动作来插入类似的东西

#+BEGIN_SRC python -n :results output pp replace :exports both
    .
    .
    .
#+END_SRC

我知道可以在 emacs init 文件中更改:result:exports默认行为,但我更喜欢更改此快捷方式行为,因为它使我能够在线更改选项。

根据legoscia回答回答我自己的问题。

正如org-mode 手册Easy Templates 部分所述,您可以通过自定义变量org-structure-template-alist来修改这些模板。 使用Mx customize-option并应用更改会将所有简单的模板添加到您的init文件中,如果您不喜欢它,您可以在init文件中仅添加一行以更改模板或添加一个模板。

在我的情况下,我将此行添加到我的 emacs init文件中以添加<p然后TAB

(add-to-list 'org-structure-template-alist '("p" "#+BEGIN_SRC python -n :results output pp replace :exports both\n?\n#+END_SRC"))

所有学分都归于legoscia

正如org-mode 手册的 Easy Templates 部分所述,您可以通过自定义变量org-structure-template-alist来修改这些模板。 (使用Mx customize-option 。)

对于<s ,默认扩展为"#+BEGIN_SRC ?\\n\\n#+END_SRC" 您可以编辑它以在BEGIN_SRC之后包含您想要的选项。 或者,您可以添加一个新模板,例如<p ,它可以扩展为您想要的文本。

从 Org 9.2 开始,@shae128 采用的方法不再有效。 相反,您需要使用 tempo-define-template,如下所示:

(tempo-define-template "python-block"
           '("#+begin_src python :results raw output"
             n n p n n
             "#+end_src")
           "<p"
           "Insert an outputting Python block"
           'org-tempo-tags)

n代表换行符, p代表留下标记的位置, <p代表点击 Tab 时展开的命令。

感谢奥马尔在这里的回答

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM