LoginSignup
4
3

More than 1 year has passed since last update.

Org-mode (Emacs) で #+begin_src や #+end_src などを楽に入力できるようにする方法

Last updated at Posted at 2023-01-06

はじめに

Emacs の Org-mode を利用する際に #+begin_src ... #+end_src みたいなブロックを書くことがよくあるのですが、これを楽に入力する設定などを書きます。

#+begin_src ... #+end_src みたいなやつの名前

#+begin_src ... #+end_src みたいなものをorg-mode 的には "structure-template" と呼ぶらしいです。
こういう名前がわからないとコマンド名などを探すのに苦労します(した)。

structure-template の入力方法

org-insert-structure-template

structure-template を手打ちするのはとても厳しいので当然これらを入力する方法として、 org-insert-structure-template というコマンドが用意されています。
このコマンドは、デフォルトでは C-c C-, に割り当てられています。

ただ、GUI ではなくターミナルエミュレーター内で Emacs を動かしている場合などは、ターミナルエミュレータが C-, をアプリケーションに送信できないということがあるらしく、このキーバインドが使えなかったりします(これは、ASCII に C-, に相当する制御文字が存在しないため、ターミナルエミュレータがキーイベントを無視するか , だけ送信してしまうためのようです)。
あと若干タイプ数が多くて面倒です。

org-tempo

今回の記事の本命です。
org-tempo というモジュールを有効にすると、もっと楽に入力できます。

手順 (#+begin_src ... #+end_src の場合)

  1. バッファ上に <s と入力 (コマンドではない)
  2. <s の右側にカーソルがある状態で、TAB (or C-i) を入力

これで <s#+begin_src ... #+end_src に変換される形で入力されます。
他にも <e#+begin_example ... #+end_example に変換されます。

org-tempo の設定方法

org-tempo はデフォルトでは有効になっていないですが、以下の手順で有効にできます。

  1. M-x customize-option org-modules を実行。 org-tempo を選択
  2. init.el など設定ファイルに (require 'org-tempo) を追記

終わりに

org-mode を使うときに設定しておくと便利な org-tempo の話でした。
カスタマイズ方法などは調べてみてください(丸投げ)。

余談

僕の記憶が正しければ、 昔は org-tempo の入力方法はデフォルトで有効になっていたと思うのですが、いつの間にか使えなくなっていて大変困ったので調べって設定したという経緯があります。
https://twitter.com/deep_tkkn/status/1578728491025334273

4
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3