Top / Elisp / hideshow.el

Meadowに付属

hideshow.el

各種ソースをコメントや関数名を残しつつソース部分を隠すモード。
hideif.elと同様にソースを書く上で便利なモードです。
私は、最近この2つとcwarn.elを併用してソースを書くようにしています。

よく似たoutlineモードとの違いは、hideshow.elのほうがプログラムソース向けに便利。
outlineモードは、それ以外のテキスト向けといったところかな。

キーバインドが覚えられない場合は、メニューからの操作も出来ます。

;-------------------------------------- 
;; C モード等で関数の中括弧(関数等の中身)を 隠したり、表示したりする
;;
;;   hs-hide-block                      C-c @ C-h
;;   hs-show-block                      C-c @ C-s
;;   hs-hide-all                        C-c @ C-M-h
;;   hs-show-all                        C-c @ C-M-s
;;   hs-hide-level                      C-c @ C-l
;;   hs-toggle-hiding                   C-c @ C-c
;;   hs-mouse-toggle-hiding             [(shift mouse-2)]
;;   hs-hide-initial-comment-block
;;
;;Cのソースを開いたら自動的にmodeをon
(add-hook 'c-mode-common-hook
          '(lambda()
             (hs-minor-mode 1))) 

;; コメントは、隠さず表示する。
(setq hs-hide-comments-when-hiding-all nil)

;; Ruby編集時もソースを隠したり、表示したり・・・
(add-hook 'ruby-mode-hook 
          '(lambda()
             (hs-minor-mode 1)))  

(let ((ruby-mode-hs-info 
      '( ruby-mode
         "class\\|module\\|def\\|if\\|unless\\|case\\|while\\|until\\|for\\|begin\\|do"
         "end"
         "#"
         ruby-move-to-block
         nil)))
  (if (not (member ruby-mode-hs-info hs-special-modes-alist))
    (setq hs-special-modes-alist
      (cons ruby-mode-hs-info hs-special-modes-alist))))

;; Lisp mode もそれなりに隠してくれるので、有効にしてみた。
(add-hook 'lisp-interaction-mode-hook
           '(lambda ()
             (setq hs-minor-mode 1)))
(add-hook 'emacs-lisp-mode-hook
           '(lambda ()
            (setq hs-minor-mode 1)))

;; 隠した(hide)行は、isearchの対象にしない(outlineモードにも影響)
(setq search-invisible nil)  ;; 「'open」or「t」

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Last-modified: Fri, 28 Dec 2007 17:21:40 JST (3029d)