Insert Templated Code Blocks with Yasnippet
When editing org file with code blocks, sometimes we want to print out the stdout, pipe the output to a file. As a result, we may type :results option near the code block a lot.
This post is about using the power of Yasnippet to streamline the workflow.
Below is my snippet for inserting a scripting code block and set the result to output:
# key: <so
# name: src-script
# --
#+begin_${1:$$(yas-choose-value '("src"))} ${2:$$(yas-choose-value '("bash" "ruby" "elisp"))} :results output
  $0
#+end_$1
Now if I type <so and press TAB, it expands the block, prompts me to select language, or to enter the name of output file.
Example of going through the <so flow and selecting bash:
#+begin_src bash :results output
echo "test"
#+end_src
Note: There was a small quirks with #begin_src block when inserting as a plaintext, so I create the extra field to disable eval error. It results in an extra enter keystroke and a TAB, but it is good enough for my use.