プログラミング原人の進化ログ

プログラミング原人の進化論

オレ プログラミング ベンキョウ スル。マナンダ コト カク。

slime REPL の見た目を変えたい

世のEmacs使いの皆さんは、日々slimeでlispのコードを書いていることでしょう。僕は先日slimeを入れたばかりの初心者ですが、slimeを初めて起動して、初めてのlispのコードを書いて、初めて実行したとき、こう思いました。すなわち、「返り値がめっちゃ見にくい」。デフォルトでは赤になっているんですね。背景色を黒っぽくしているので見辛いです。
ということで、快適にlispを勉強するためにslimeの見た目を少しばかりいじってみました。

目標

  • slimeの文字色を変えて見やすくする。
  • Emacsの見た目の変更の基本的なやり方を理解する。

slimeの色を変える

faceを調べる

まず、返り値の色を変えていきます。

f:id:programgenjin:20190305210417p:plain

slimeに限らず、Emacsでは文字色などの見た目をfaceというもので管理します。色々なfaceがあるのですが、faceはそれぞれ文字色や背景色などの属性を持っていて、それらの属性に割り当てられている値を変更することで見た目を調整します。文字色はforegroundという属性で管理されています。つまり、文字色を変えたい場合、その文字がなんというfaceに属しているのか調べ、そのfaceのforeground属性を好きな色の名前に設定することになります。

では、なんというfaceなのか調べます。調べたい箇所にカーソルを置いたまま、

M-x describe-face

ミニバッファにfaceの名前が出てきますが、そのままEnterを押すと、そのfaceの詳しい説明が書かれたバッファが開かれます。

f:id:programgenjin:20190305211246p:plain

slime-repl-inputed-output-faceっていうみたいですね。

faceを編集する

'customize this face' の部分にカーソルを合わせ、Enter。すると新しいバッファが開きます。

f:id:programgenjin:20190305225727p:plain

下の方に、色の名前が書かれた部分があるので、ここを編集します。Redを、例えばlimeにしてみます。すると、sampleと書かれた文字の色が変わるので、色を確かめることができます。
好きな色に変えたら、上の方に 'apply and save' というボタンがあるので、そこにカーソルを置いてEnter。すると、早速REPLの色が変わりました。

これと同じ要領で色を他の部分の色も変えてみます。foregroundが見当たらない場合は、'Show All Attributes' からforegroundにチェックを入れれば編集できました。

最終的にはこうなりました。

f:id:programgenjin:20190305225233p:plain

まとめ

だいぶ見やすくなりました。Emacsの見た目はこれと同じように変更できます。
直接設定ファイルに記述してもOKです。