Windows版emacs + hackgen-nerdフォントを入れる。

2020年10月1日

老害プログラマなので手がEmacsにカスタマイズされています。それでVisual Studio Codeを使おうが、何であろうがEmacsキーバインド出ないと作業効率が大幅に落ちるのです。まあ、この辺はいまさらVi/Vimのキーバインドを覚え直しても同じなのでしょう。

各エディターのプラグイン/拡張機能や、keyhackを使ってキーバインドを実現しているわけですが、時には本家が恋しくなるわけです。というわけで、Windowsに改めてEmacsをインストールしてみました。

いろいろと面倒なので、Chocolateyで一発インストール

本家からzip拾ってきて、展開して、となると更新メンテが面倒なので、chocolateyでインストールします。

choco install emacs

で終了です。バイナリーは
C:\ProgramData\chocolatey\lib\emacs\tools\emacs\bin
にインストールされたようなので、runemacs.exe のショートカットを適当に作ります。(emacs.exe, emacs-27.*.exe でショートカットを作ると、DOS窓経由でエディターが起動されるので、鬱陶しいです。)

ちょっとまて、何、このフォント

英数文字はともかく、日本語の表示がむごいわけです。まあ初期設定ではダメだろうなとは思ってましたが、入れ替えるしか。ターミナルフォントとしては最近誉れ高いhackgen-nerdを入れてみようと思い立ちました。これもChocolateyで一発。

choco install font-hackgen-nerd

emacsの設定

init.elなり.emacsに設定を追加していくわけですが、Emacs自体の設定画面では
Options > Set-Default-Fonts …
の画面で

ここでフォント名とサイズを選択
再度Emacsのメニュー画面から、
Options > Save Options
を選択すると、設定が反映されます。ここで一度Emacsを再起動すると良いでしょう。

設定ファイルには以下のような行が追加されていました。

(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(default ((t (:family "HackGenNerd" :foundry "outline" :slant normal :weight normal :height 120 :width normal)))))

ここまでくると、日本語もずいぶんと読みやすくなりました。

後日談: Emacsを入れ直しました。

表示はフォントの設定で良くなったのですが、IMEの切り替えがうまくいかずに困りました。まあ、入力だけでしたら半角/全角キー切り替えで何とかなるのですけど、ちょっとキーバインドをいじろうとするとハマるのです。

回避方法を探すのも、ちょっと時間がないので、IMEパッチがあたったビルドに入れ替えました。

https://github.com/mhatta/emacs-27-x86_64-win-ime