15
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

EmacsAdvent Calendar 2012

Day 4

Emacsの設定を便利に変えられるcustomize-groupの紹介

Posted at

はじめに

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

次にBackgroundChooseにカーソルを合わせて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を押すと全てのカスタマイズ出来る項目が出てくるので、更に細かい設定が可能になります。

おわりに

こんな感じで色設定だけでなく、色んな設定をいじることが出来ます。ぐぐって出て来なかった設定は諦める、なんて生活とはおさらばですよ!

15
16
1

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
15
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?