Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2009-09-07

lisp-modeとoutline-modeの併用

| 04:55 | lisp-modeとoutline-modeの併用 - わだばLisperになる を含むブックマーク はてなブックマーク - lisp-modeとoutline-modeの併用 - わだばLisperになる

今日ぼんやりとGoogle Code Archive - Long-term storage for Google Code Project Hosting.を眺めていたのですが、この最後のバッファローカルの変数を設定しているところで

;; Local Variables: **
;; mode:lisp **
;; outline-regexp: ";;; " **
;; End: **

となっているのに気付きました。

なるほど、outline-modeで、;;;を目印に設定すれば上手く畳めるのかもしれません。

ということでページが見つかりませんでした – bookshelf.jp等を参考にしつつちょっと試してみました。

;; slime-modeへフック
(add-hook 'slime-mode-hook
          (lambda () 
            (setq outline-regexp ";;; ")
            (outline-minor-mode t)))

;; superキーに割付け
(define-key slime-mode-map [(super ?a)]
  'show-all)

(define-key slime-mode-map [(super ?d)]
  'hide-subtree)

(define-key slime-mode-map [(super ?t)]
  'hide-other)

と設定してみる。

コードを書いて試してみる

;;; foo
(defun foo ()
  :foo)

;;; bar■
(defun bar ()
  :bar)

;;; baz
(defun baz ()
  :baz)

と書く。

hide-otherで畳んでみる

;;; foo
;;; bar■
(defun bar ()
  :bar)
;;; baz

なるほど、なるほど。

畳み込み表示のための専用のelispがあったような気もしますが、outline-minor-modeの利用も手軽かもしれません。

他にもっとLISPを書く際に便利で簡単な畳み込みの方法をご存知でしたら是非教えてください!

ゲスト



トラックバック - http://cadr.g.hatena.ne.jp/g000001/20090907