Emacsで絵文字を表示する

  • 21
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

せっかくUnicodeに絵文字が入ってるんだしフォントで表示したいよね。したいしたい。

筆者はOS XでEmacsを使ってるので他の環境ではどう見えるのか知らないけど、とりあえず設定してみた。

emacs-emojis.png

(画像は本記事の設定済みOS XのEmacs 24.5でSKK日本語入力FEPの絵文字辞書❤を表示したところ)

つまるところ絵文字のグリフが入ったフォントセットが適切に設定されてないから何も見えないので、要するに今はまだ過渡期なんだって話ですね。

ただの設定なんだけれど、若干ややこしかったので https://github.com/zonuexe/emoji-fontset.el に置いた。

フォント

Unicode Fonts for Ancient ScriptsにあるSymbolaフォントを入れるとよろし。入れなくても、MacならApple Color Emojiを、WindowsならSegoe UI Emojiを利用するようにしてる。

インストール

私はCaskを使ってるので、$HOME/.emacs.d/Caskファイルにこんな感じに書いてインストールする。

Cask
(depends-on "emoji-fontset" :git "git@github.com:zonuexe/emoji-fontset.el.git")
(use-package emoji-fontset
  :if window-system
  :init
  (emoji-fontset-enable "Symbola"))

いまどきのEl-Getでは$HOME/.emacs.d/init.elに、こんなふうに書けばよさそう。

init.el
(el-get-bundle zonuexe/emoji-fontset.el
  (emoji-fontset-enable "Symbola"))

できないこと

いまのところ国旗は一工夫しないと表示できなさそう。ご存じの通り国旗の絵文字は [JP][GB][US][KR] のような二文字の国名コードを並べて記述することになってて、その二文字の組合せを国旗として表示するかどうかは表示する側の実装に依存する。

とは言ってもエディタなので、国旗として展開された方が良いのか文字のままで扱った方が編集中には便利なのかは悩みどころ。やるとすればimakado/emojiみたいな方式が良いのかなあ。

🇧🇷🇨🇳🇩🇪🇪🇸🇫🇷🇬🇧🇮🇹🇯🇵🇰🇷🇷🇺🇺🇸🇮🇸🇮🇪🇦🇿🇦🇫🇿🇼🇧🇴🇰🇵

注意

絵文字がいっぱい入ったファイルを開くと重いよ! 設定するだけなら特に問題なさそう。

あと、(emoji-fontset/turn-on)は中身でwindow-systemの判定入れてるので、呼び出す側では特に分岐しなくても良い。

2015年11月8日 追記

MELPAに収録されたので M-x package-install emoji-fontset でインストールできます ヾ(〃><)ノ゙

それに伴って函数名がemoji-fontset/turn-onからemoji-fontset-enableに変更になったので気をつけてください。

2016年7月27日 追記

Emacs 25.1では、デフォルトでいい感じの設定macOSでのカラー絵文字サポートの廃止が入ってるんで、アップデートするひとはもはやemoji-fontset.elをインストールする必要はないですよ ヾ(〃><)ノ゙

Emacs 25以前と25.1以降でinit.elを利用したい場合はemoji-fontset.elを最新版に更新して、以下のように書くといいです。

init.el
(custom-set-variables '(emoji-fontset-check-version nil))
(emoji-fontset-enable "Symbola")

Symbola以外のフォントを設定してるひとは引き続き利用できるので、最新版に更新するだけで問題ないです。