45

I found the command SPC m x c to insert a small code snippet like ~~. I would like to insert a longer snippet like

 #+BEGIN_SRC 
 #+END_SRC

Is there a command to do this? I found a way to add it for markdown, which is SPC m x c

3
  • See yasnippts.
    – mankoff
    Commented Jan 30, 2016 at 13:04
  • 5
    No you don't need yasnippets. Just ``<s TAB` will insert that begin end src block.
    – Emacs User
    Commented Jan 30, 2016 at 14:01
  • @EmacsUser <s TAB doesn't work for me. Maybe evil does interfere here?
    – buhtz
    Commented Apr 4, 2022 at 7:37

1 Answer 1

94

February 2020 update to this answer: From org version 9.2, the old easy templates referred to in this answer is no longer active by default, see this answer for more info: Why do easy templates, .e.g, "< s TAB" in org 9.2 not work? along with the new way to access easy templates which is invoking "org-insert-structure-template" C-c C-,, or using Spacemacs: , i b

Original answer:

Yes, it's called easy templates.

Org mode supports insertion of empty structural elements (like ‘#+BEGIN_SRC’ and ‘#+END_SRC’ pairs) with just a few key strokes. This is achieved through a native template expansion mechanism. Note that Emacs has several other template mechanisms which could be used in a similar way, for example ‘yasnippet’.

To insert a structural element, type a ‘<’, followed by a template selector and ‘TAB’. Completion takes effect only when the above keystrokes are typed on a line by itself.

For your precise question: <s then TAB.

Note it's not specific to spacemacs, since it's from native org-mode

5
  • 3
    <s doesn't work in Spacemacs? How does one invoke the org-mode template leader key from Spacemacs?
    – shark8me
    Commented Sep 25, 2017 at 9:02
  • 2
    @shark8me It works in Spacemacs. Just go into the Insert mode and then press <s followed by TAB. That's all.
    – shivams
    Commented Nov 4, 2017 at 18:59
  • 22
    Note, this is changing a bit from Org 9.2. For "<s" snippets you need to (require 'org-tempo). Blocks can also be inserted using the interface accessed via C-c C-,. The syntax of org-structure-template-alist is also changed.
    – rasmus
    Commented Apr 11, 2018 at 22:48
  • @rasmus (require 'org-tempo) did the trick for me, in Spacemacs. Thanks!
    – Sankalp
    Commented Jun 4, 2019 at 22:30
  • 7
    FYI, this behavior changed in Org 9.2. The new method is given in the release notes. Basically, press C-c C-, for a list of templates and then select s for source. @rasmus above explains how to continue using the old way in newer versions of org-mode. web.archive.org/web/20190117084828/https://orgmode.org/… Commented Aug 26, 2019 at 23:49

Not the answer you're looking for? Browse other questions tagged or ask your own question.