LoginSignup
32
26

More than 5 years have passed since last update.

Emacsで絵文字を表示する

Last updated at Posted at 2015-05-31

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

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

emacs-emojis.png

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

注意: ↑の画像はEmacsのカラー絵文字機能が有効だったEmacs24のものです
Emacs 25, 26ではカラー絵文字を表示することは基本的にはできません。
また、モノクロの絵文字表示にもSymbola フォントのインストールが必要です。

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

ただの設定なんだけれど、若干ややこしかったので https://github.com/zonuexe/emoji-fontset.el に置いた。 これはEmacs 25, 26では基本的に必要のない設定です

Emacs 25, 26では設定は追加されましたがカラー絵文字の表示はできないのでSymbolaを入れてください。

フォント

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

Emacs 25, 26ではSymbolaフォントをインストールする必要があります。

インストール

この項目は歴史的な記述です。Emacs 25以降では、絵文字のフォントについて特別なカスタマイズをしたい場合を除いてはこのパッケージをインストールする必要はありません

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

Cask
(depends-on "emoji-fontset")
(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みたいな方式が良いのかなあ。

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

注意

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

Emacs 25, 26ではカラー絵文字のサポートが削除されたので、そんなに重くはなくなりました。

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

2015年11月8日 追記

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

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

MELPAでもインストールはできますが、Emacs 25, 26では特別な設定をしたい場合以外は基本的に不要です。

2016年7月27日 追記

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

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

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

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

2018年7月18日 追記

この記事の書かれた時期との情勢の変化によって誤読されにくいように変更

32
26
0

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
32
26