Personal tools
You are here: Home ブログ matsuyama Emacs で lambda をかわいくする
Document Actions

Emacs で lambda をかわいくする

元ネタは http://www.emacswiki.org/cgi-bin/wiki/PrettyLambda です。

Lisp の lambda という文字列は読むにはかなり冗長なので λ のようにかわいく表示して可読性を向上しようという試みです。

以下のコードを ~/.emacs に記述するだけです。

(defun set-pretty-patterns (patterns)
  (loop for (glyph . pairs) in patterns do
        (loop for (regexp . major-modes) in pairs do
              (loop for major-mode in major-modes do
                    (let ((major-mode (intern (concat (symbol-name major-mode) "-mode")))
                          (n (if (string-match "\\\\([^?]" regexp) 1 0)))
                      (font-lock-add-keywords major-mode
                                              `((,regexp (0 (prog1 ()
                                                              (compose-region (match-beginning ,n)
                                                                              (match-end ,n)
                                                                              ,glyph)))))))))))

(set-pretty-patterns
 '((?λ ("\\<lambda\\>" lisp lisp-interaction emacs-lisp scheme))))

こんな感じになります。

http://dev.ariel-networks.com/Members/matsuyama/images/pretty-lambda.png/image

最近入社した大先生 Sugawara さんによる Big lambda もなかなかイカス(*)。

(*) EmacsWiki の下のほうにソースがあります

http://dev.ariel-networks.com/Members/matsuyama/images/pretty-big-lambda.png/image
Category(s)
emacs
The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/matsuyama/pretty-lambda-in-emacs/tbping

Re:Emacs で lambda をかわいくする

Posted by elim at 2008-02-02 17:50
loop 使うなら (require 'cl) しておかないと、ですね。
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.