はじめに
Emacsを使っている時、ちょっとここの色変えたい、とか、ここの動作を変えたい、というのがよくあると思います。そういう時皆さんどうしてますか?elispがあんまり分からない僕なんかはぐぐっては見つかった設定をコピペする、見つからなかったら諦める日々を過ごしていました。
で、そんな中知ったcustomize-groupという関数。これを使うと、そんな生活とはおさらば出来るんです。
具体例で示しましょう。例えば、現在行のハイライトの色設定を変えてみます。
現在行のハイライトの色を変える
まず、customize-groupでは、いろんな設定がgroup分けされているので、今から変える設定がどのgroupに属しているのか考えます。大体その設定が書かれているelispのファイル名やmode名です。
現在行のハイライトはhl-line-modeなので、hl-lineというgroupかな、と目星をつけます。
で、M-x customize-group
します。するとgroup名の入力を求められるので、hl-line
と入力し、Enter
を押します。
すると以下のような画面が出てくるはずです。
To apply changes, use the Save or Set buttons.
For details, see [Saving Customizations] in the [Emacs manual].
[ Search ]
Operate on all settings in this buffer:
[ Set for current session ] [ Save for future sessions ]
[ Undo edits ] [ Reset to saved ] [ Erase customizations ] [ Exit ]
Parent groups: [Convenience]
Hl Line group: Highlight the current line.
[ State ]: something in this group has been changed outside customize.
Hide Global Hl Line Mode: [Toggle] on (non-nil)
[ State ]: CHANGED outside Customize.
Non-nil if Global-Hl-Line mode is enabled. More
Show Value Global Hl Line Sticky Flag
Non-nil means the Global HL-Line mode highlight appears in all windows. More
Show Hl Line face: [sample]
Face to use for `hl-line-face'.
Show Value Hl Line Face
Face with which to highlight the current line in Hl-Line mode.
Show Value Hl Line Sticky Flag
Non-nil means the HL-Line mode highlight appears in all windows. More
ここに色んなカスタマイズ出来る項目が載っているので、これをいじって、動作の確認して、保存する、という流れになります。
今設定したい項目はHl Line face
です。ここのShow
にカーソルを合わせてEnter
を押すと詳細が見れます。僕の場合以下のようになりました。
Hide Hl Line face: [sample]
[ State ]: STANDARD.
Face to use for `hl-line-face'.
[X] Underline: [Value Menu] Off
[X] Background: #262626 [ Choose ] (sample)
Show All Attributes
次にBackground
のChoose
にカーソルを合わせてEnter
を押すと、色見本が出てくるので、好みの色の上でEnterを押すと選択出来ます。今は例なので、使いませんが青色を選んでみました。
[X] Background: lightsteelblue [ Choose ] (sample)
これで設定を変えましたが、まだ反映されていません。反映させるためには[ State ]
の上にカーソルを合わせてEnter
を押します。すると以下のような選択肢が表示されるはずです。
Available choices:
0 = Set for Current Session
1 = Save for Future Sessions
2 = Undo Edits
4 = Erase Customization
6 = Add Comment
9 = For All Kinds of Displays
: = Show Lisp Expression
C-g = Quit
今はとりあえず、現在のセッションだけ有効にしてみます。そのために0
を入力します。
すると、現在行の色が変わったはずです。この設定が気に食わなかったらまた設定を変えて、現在のセッションだけ有効にして確認、というのを繰り返します。それで気に入った設定を見つけたら、また[ State ]
にカーソルを合わせEnter
を押した後1
を押します。すると勝手にinit.elに設定が書き込まれ、次にEmacsを起動させた時もこの設定が有効になります。これで現在行の色設定の変更が完了しました。
また、この例では使いませんでしたが、Show All Attibutes
にカーソルを合わせてEnter
を押すと全てのカスタマイズ出来る項目が出てくるので、更に細かい設定が可能になります。
おわりに
こんな感じで色設定だけでなく、色んな設定をいじることが出来ます。ぐぐって出て来なかった設定は諦める、なんて生活とはおさらばですよ!