[英]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
默认行为,但我更喜欢更改此快捷方式行为,因为它使我能够在线更改选项。
正如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.