🌈
org-modeのコードブロックのシンタックスハイライトについて
Emacsのorg-modeは非常に強力なドキュメント作成ツールですが、コードブロック内のシンタックスハイライトに関して少し戸惑うことがあります。デフォルトで色がつく言語もあれば、そうでない言語もあります。
この記事では、org-modeでのコードブロックのシンタックスハイライトの仕組みと、任意の言語を簡単に記述する方法について解説します。
コードブロックのハイライトの仕組み
org-modeでコードブロックを書く際には、以下のような構文を使います:
#+BEGIN_SRC <LANG>
コードをここに書く
#+END_SRC
org-modeのコードブロックはこの <LANG>
部分に言語を指定することで、その言語に応じたシンタックスハイライトが適用されますが、シンタックスハイライトは<LANG>
に対応するメジャーモードが存在する場合にのみ適用されます。
つまり、Terraformのコードをハイライトするには:
-
terraform-mode
をインストールする - コードブロックで
#+BEGIN_SRC terraform
と指定する
こうすることで、Terraformのコードブロックにシンタックスハイライトが適用されるようになります。
短い言語識別子の設定方法
#+BEGIN_SRC terraform
でTerraformのハイライトが効くようになりましたが、毎回コードを書くたびにterraform
と9文字も打ってられません。ZennやGitHubではtf
でTerraform(正確にはHCL)のシンタックスハイライトが効くようになっています。
```tf
resource "aws_security_group" "example" {
...
}
```
org-modeでも同様に短い識別子を使うことができます。そのためには、org-src-lang-modes
に言語とモードの組みを追加します:
(add-to-list 'org-src-lang-modes (cons "tf" 'terraform))
こうすることでtf
でもTerraformのシンタックスハイライトが適用されます 🎉
Discussion