YASnippet and Babel

Org-mode allows you to use Babel. As it says in the manual:
Babel is Org-mode’s ability to execute source code within Org-mode documents

Here’s a bit of Java, wrapped up in Babel

#+BEGIN_SRC java :classname example
    public class example
            public static void main (String args [])
                System.out.println("Go Babel!");

Put the point in the block and

C-c '      to edit the code
C-c C-c     to run the code

In the past, I never used Babel as often as I should, mainly because I could never quite remember the syntax.

Then I had the idea of adding Babel to YASnippet.  I added the following to my org-mode snippets:

# -*- mode: snippet -*-
# name: jbabel
# key: jbabel
# --
#+BEGIN_SRC java :classname $1
    public class $1
            public static void main (String args [])

… and now I just have to type jbabel and hit tab to have my Babel block ready to go.

It works with ditaa too. As I could never quite remember all the codes when I needed them, I just put a few of ones I used most frequently in a YASnippet example:

# -*- mode: snippet -*-
# name: ditaa babel
# key: dbabel
# --
#+begin_src ditaa :file $1.png
| Things to do    |        +-----+
| cGRE            |    |{s}  |
| o Cut the grass *-+----->|     |
| o Buy jam       |    |     |
| o Fix car       |    +-----+
| o Make website  |

And here’s what it looks like when converted (if you’re reading this on Google+, you might want to head over to my website: TonyBallantyne.com to see the image)


  1. Xi says:

    Thanks again for your excellent use-case!
    I am a new emacs user, who have spent a month time studying it. I have embraced one of most famous .emacs setups in github as foundation of my own setups.
    It was so thrilling when I :
    started the setup customization
    swapped keys and enabled sticky keys feature to stay away from RSI
    now, I am ready to start the Org mode journey , which is said to be a master piece work in emacs!


  2. admin says:

    You’re welcome! And enjoy org-mode!


  3. Grant Rettke says:

    Great idea to keep a reminder right in the snippet itself.


    1. admin says:



Leave a Comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s