この記事は Emacs Advent Calendar 2022 4日目の記事です。
はじめに
org-mode を使い込んでくると、プロパティドロアですとか、ソースブロックですとか、通常の文章の中に制御コード的なものが入り込んできます。プロパティドロアですと、:PROPERTIES:
という文字列が表示され、折りたたまれた一文の中にたくさんのメタデータが保存されます。
もし、これらの制御コードがうざったらしいな...と思い始めたら、prettify-symbols-mode
の出番です。
prettify-symbols-mode を使って制御コードをシンプルに
prettify-symbols-mode
は、prog-mode.el
に定義されているマイナーモードで、パッケージの追加無しで使えます。例えば、こんな感じです。
ご覧の通り、:PROPERTIES:
が »
に置き換わって、目立たなくなっているのがわかると思います。上の例ではさらに、#+begin_src
を▨
に置き換えています。
設定例
prettify-symbols-modes
はビルトインなので、例えば下記のコードをinit.el
に入れておけば、すぐに使うことができます。置き換えるテキストは、ユニコードから頑張って探すのが良いと思います。もし、all-the-icons.el
とかicons-in-terminal.el
を使っているなら、それらのフォントを使って置き換えることもできます。
(add-hook 'org-mode-hook 'prettify-symbols-mode)
(setq-default prettify-symbols-alist '((":PROPERTIES:" . "»")
(":LOGBOOK:" . "›")
(":END:" . "›")
("#+begin_src" . "▨")
("#+end_src" . "▨")
("#+RESULTS:" . "▨")
("[ ]" . "☐")
("[X]" . "☑" )
("[-]" . "☒" )))
配色は別途、org-src-block-faces
, org-block-begin-line
, org-block-end-line
をカスタマイズすることで変更できます。このあたりは、10.27. [org-babel] ソースブロックの配色 を御覧ください。
チェックボックスを変えることもできて(下の例ではicons-in-terminal.el
のフォントを使っています)、わりと気に入っています。
留意点
バッファの中に、"
のような文字がペアではなく一つだけ存在すると、それ以降に登場するprettify-symbols-alist
で指定した文字列が正しく置換されないので注意してください。
まとめ
今回は、org バッファの見た目をスッキリさせてくれるビルトインのprettify-symbols-mode
を紹介しました。Enjoy Emacs!!