回答:
メインバッファを狭める代わりに、新しい間接バッファを開いて狭めることができます。
(defun indirect-region (beg end name)
"Open a new named indirect buffer of the current buffer,
narrowed to region [BEG, END]."
(interactive "r\nsname of narrowed buffer: ")
(let ((new-buff
(make-indirect-buffer (current-buffer)
(generate-new-buffer-name name)
t)))
(switch-to-buffer new-buff nil t)
(narrow-to-region beg end)))
これにより、現在のバッファーの新しい間接バッファーが開き、現在のリージョンに絞り込まれます。このバッファーを編集することは、メインバッファーを編集するのと同じであり、それらを切り替えることができます。
そのようです:
あなたはこのような素晴らしい機能でこれを拡張することができます
それはあなた次第です。
すみません、もっと早くあなたの質問を見ませんでした。
これは、ライブラリゾーン(zones.el
)の理由の1つです。
もしバッファを狭くするとき、各狭窄に添加される狭窄のリングフル(unnarrowed)バッファを含みます。ナローイングは入れ子にすることができますが、入れ子にする必要はありません。彼らはすべての地域にすることができます。
絞り込みを循環できます(を使用C-x n x x x...
)。数値プレフィックスargを使用して、N番目の前のナローイングに直接移動できます。例えば、C-3 C-x n x
。プレーンC-u
は完全に拡大します(C-x n w
幅のないリングエントリと同じか、循環します)。C-0
リングを空にします。
モード行は、現在のナローイング(バッファ制限)を示します。
現在のバッファー制限のリングを永続的に保存して、後で復元することもできます。ライブラリBookmark +を使用している場合は、制限のリングをブックマークし、ブックマークにジャンプして後で復元できます。
詳細については、「複数の絞り込み」を参照してください。
狭い間接(ライブラリnarrow-indirect.el
)も参照してください。メインバッファーのクローンであり、メインバッファーの特定の部分に狭められた間接バッファーをいくつでも簡単に作成できます。
widen
架空のrenarrow
コマンドの呼び出しと呼び出しの間で変わる可能性があるため、注意が必要です。おそらく、最善の方法は、領域の境界をどこかに保存し、最後に保存された領域をマークするコマンドを用意することです。