fancy-narrow 20160124.403(in MELPA)
narrow-to-region with more eye candy.

概要

ナローイング とは、テキストの一部のみを表示するもので、
編集操作をその部分に限定できます。

一方、ナローイングされたことに気付かなかったりすることもあります。

そこで、 fancy-narrow.el はナローイングの
範囲外においては薄い色で表示させます。

とはいえ実装を見てみると、
elispで「見える化されたナローイング」を実装していて
ナローイングで起こる各現象をエミュレートしています。

たとえば、 point-minpoint-max
fancy-narrowの開始・終了位置を返すようになったり、
カーソル移動コマンドがfancy-narrowの範囲外に行かないように
アドバイスがかけられています。

マイナーモード M-x fancy-narrow-mode を有効にすると、
ナローイング系のC-x nコマンド群がfancy-narrowバージョンに
再割り当てされます。

20150224061154.png
Fig1: C-x n dでその関数以外を薄い色にする

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.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/")))

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

M-x package-install fancy-narrow

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

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

narrow-indirect.elと比較

「ナローイングされたことをわかるようにする」という目的では、
間接バッファを使ったnarrow-indirect.el(レビュー) もあります。

fancy-narrow.elは無数のアドバイスにより
標準の関数の挙動を変更しているので、
かなり強引と言わざるを得ません。

対して間接バッファをナローイングしているだけの
narrow-indirect.elはフックやアドバイスもなくクリーンです。

実行方法

$ wget http://rubikitch.com/f/150224052934.fancy-narrow.el
$ emacs -Q -f package-initialize -l 150224052934.fancy-narrow.el

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


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