narrow-indirect 20170307.921(in MELPA)
Narrow using an indirect buffer that is a clone

概要

narrow-indirect.el は、 ナローイング
間接バッファ で行うものです。

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

一方、間接バッファとは、元のバッファと同じ内容で
編集操作が元のバッファと連動している、
いわばバッファの別名のようなものです。

これらを組み合わせることでナローイングを戻す
C-x n w (widen) を使う必要はなく、
ただ間接バッファを削除するだけで済みます。

大きいバッファのうち、2箇所を編集する場合に
2つの間接バッファを作成しておけば、
あたかも複数のファイルであるかのように扱えます。

インストール

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

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

M-x package-install narrow-indirect

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

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

別のメジャーモードにしたければedit-indirectを

元のバッファと間接バッファは別のメジャーモードが持てます。

しかし、テキストプロパティは共有されるので
間接バッファでメジャーモードを変更すると
元のバッファの font-lock による色付けも変わってしまいます。

色付けを戻すには、2回 M-x font-lock-mode を実行する必要があります。

こういう特徴があるので、edit-indirect.elは
できれば同じメジャーモードで使った方がいいです。

よって、JavaScriptやCSSが含まれているHTMLを編集するには、
色付けの問題が起こるので、edit-indirect.el(レビュー) を使いましょう。

20150107050057.png
Fig1: C-x 4 n d後。上:元のバッファ / 下:ナローイング間接バッファ

設定 150107045754.narrow-indirect.el(以下のコードと同一)

;;; 作者推奨キーバインド
(define-key ctl-x-4-map "nd" 'ni-narrow-to-defun-indirect-other-window)
(define-key ctl-x-4-map "nn" 'ni-narrow-to-region-indirect-other-window)
(define-key ctl-x-4-map "np" 'ni-narrow-to-page-indirect-other-window)
;;; いっそのこと置き換えてもいいかもしれない
;; (define-key ctl-x-map "nd" 'ni-narrow-to-defun-indirect-other-window)
;; (define-key ctl-x-map "nn" 'ni-narrow-to-region-indirect-other-window)
;; (define-key ctl-x-map "np" 'ni-narrow-to-page-indirect-other-window)

実行方法

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

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


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