fold-this 20150601.342(in MELPA)
Just fold this region please

概要

Emacsでは org-modeoutline-mode などで見られるように
特定の範囲を隠したりできます。

これらは隠す範囲を予め計算しているのですが、
この fold-this.el はregionを隠すものです。

余計な部分を一時的に隠すことで要点が明確になり、
コードを理解する助けになります。

元々
M-x fold-this でregionを隠し、
M-x fold-this-all でregionの文字列すべてを隠すようになっていますが、
本設定では M-x fold-this--this-or-all を定義して
これらをひとまとめにしています。

view-mode のfに割り当てていて、以下の挙動にしています。

  • regionが有効のときはそのregionを隠す
  • regionが設定されてないときは現在のS式を隠す
  • C-u fでバッファ内の同一region/S式をすべて隠す

隠された部分は「..」と表示され、
その部分でRETかC-gを押せば元に戻ります。

20150516081605.png
Fig1: このバッファをview-modeにして

20150516081616.png
Fig2: fを押すとそのS式が隠れる

20150516081632.png
Fig3: regionを指定し

20150516081640.png
Fig4: C-u fで該当部分が全部隠れる

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてfold-thisを使う方は
以下のコマンドを実行します。

M-x package-install fold-this

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name fold-this

設定 50fold-this.el(以下のコードと同一)

;;; この設定を入れるとEmacsを終了してもfoldが持続する
;; (setq fold-this-persistent-folds t)
(defun fold-this--this-or-all (all)
  (interactive "P")
  (let ((x (bounds-of-thing-at-point 'sexp))
        (rap (region-active-p)))
    (funcall (if all 'fold-this-all 'fold-this)
             (if rap (region-beginning) (car x))
             (if rap (region-end) (cdr x))))
  (message (substitute-command-keys "To unfold all, try \\[fold-this-unfold-all]")))
(with-eval-after-load "view"
  (define-key view-mode-map (kbd "f") 'fold-this--this-or-all))

実行方法

$ wget http://rubikitch.com/f/50fold-this.el
$ emacs -Q -f package-initialize -l 50fold-this.el

本サイト内の関連パッケージ


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。