• ベストアンサー

Emacsにおける関数名の色の設定

こんにちは。 Emacsは、Gnu Emacs for Windows 23.4を使用しています。 ホームディレクトリの.emacsに、 (set-face-foreground 'font-lock-function-name-face "blue") と記述しても、関数名が青にならないので困っています。 ちなみに、 (set-face-foreground 'font-lock-string-face "red") などは、きちんと反映されています。 何か御存じの方がいらっしゃれば、是非、情報を提供して頂きたく思います。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

確認してみたのですが、Emacs-Lispモードでは、あまり色がつきません。 これは現在の仕様のようです。 http://xahlee.org/emacs/modernization_elisp_syntax_color.html

MetalLover
質問者

お礼

御回答ありがとうございます。 参考URLのサイトを読ませていただいたのですが、 後半の意味がよく分かりませんでした。 関数名に色を付けるのはあきらめるしかないのでしょうか?

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

いや、それでいいです。describe-charは文字の情報を出力するものです。単語の色が変わるのも、結局は一文字ずつ色がついてるわけですから。 それで > There are text properties here: > charset japanese-jisx0208 > fontified t というように、faceについてはなにもありません。 標準のまま、ということです。 使っているのが、Lispに関数に色を着けるようなモードでは無いのでしょう。

MetalLover
質問者

お礼

たびたび御回答ありがとうございます。 使っているモードは、Emacs-Lispモードなので、 ホームディレクトリの.emacsに、 (set-face-foreground 'font-lock-function-name-face "blue") と記述すると、関数名が青になるはずですよね? Emacsのバグだと考えるべきなのでしょうか?

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

これだけの情報ではわかりません。 確認する点は ・font-lock-function-name-faceのforgroundが設定した"blue"になっているか? ・その「青にならない関数名」は、font-lock-function-name-faceが使われているのか> その「青にならない関数名」にカーソルを合せて、M-x describe-char を実行してください。*Help*バッファにその文字に関する情報が出力されます。その中に face という項目があるはずです。 まずは、それが font-lock-function-name-face なのかどうか確認してください。 もし別のものなら、font-lock-function-name-faceを変えても無駄です。 場合によってはfaceが無いかもしれません。その場合は標準のfaceが使われているはずです。 もし、font-lock-function-name-face だったら、この「font-lock-function-name-face」をクリックする/カーソルを合せてリターンか、M-x describe-face font-lock-function-name-face で、font-lock-function-name-faceの設定内容を確認してください。 Foregroundが Blueになっていなければ、別のところで書き変わっているか、そもそも設定に失敗しているかです。

MetalLover
質問者

お礼

御回答ありがとうございます。 >その「青にならない関数名」にカーソルを合せて、M-x describe-char を実行してください。*Help*バッファにその文字に関する情報が出力されます。その中に face という項目があるはずです。 >まずは、それが font-lock-function-name-face なのかどうか確認してください。 > >もし別のものなら、font-lock-function-name-faceを変えても無駄です。 >場合によってはfaceが無いかもしれません。その場合は標準のfaceが使われているはずです。 例えば、setqという関数の先頭のsの位置にカーソルを合わせ、 M-x describe-char を実行すると、以下のように表示されました。 ------------------------------------------------------------ character: s (115, #o163, #x73) preferred charset: ascii (ASCII (ISO646 IRV)) code point: 0x73 syntax: w which means: word category: .:Base, a:ASCII, l:Latin, r:Roman buffer code: #x73 file code: #x73 (encoded by coding system japanese-shift-jis-unix) display: by this font (glyph code) uniscribe:-outline-MS 明朝-normal-normal-normal-serif-16-*-*-*-c-*-iso8859-1 (#x56) Character code properties: customize what to show name: LATIN SMALL LETTER S general-category: Ll (Letter, Lowercase) There are text properties here: charset japanese-jisx0208 fontified t [back] ------------------------------------------------------------ この中には、faceという項目はないですし、関数名のsetqではなくて、 sという文字に対する情報が表示されているようです。 この場合はどうすればよいのでしょうか? 申し訳ございませんが、引き続き情報提供をお願いしたいと思いますので、 よろしくお願い致します。

関連するQ&A