以前の制限に狭める


8

以前の制限を復元する便利な方法はありますか?したがって、次の一連のイベントの後:

  • 地域をマーク
  • 電話narrow-to-regionして、いくつかの作業を行います。
  • widenジャンプして何かを探すように電話する

再度マークを付けずに、元の領域に再度絞り込みたいです。


もちろん、バッファーの内容はwiden架空のrenarrowコマンドの呼び出しと呼び出しの間で変わる可能性があるため、注意が必要です。おそらく、最善の方法は、領域の境界をどこかに保存し、最後に保存された領域をマークするコマンドを用意することです。
glucas

回答:


2

メインバッファを狭める代わりに、新しい間接バッファを開いて狭めることができます。

(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)))

これにより、現在のバッファーの新しい間接バッファーが開き、現在のリージョンに絞り込まれます。このバッファーを編集することは、メインバッファーを編集するのと同じであり、それらを切り替えることができます。

そのようです:

ここに画像の説明を入力してください

あなたはこのような素晴らしい機能でこれを拡張することができます

  • 現在の関数に自動的に絞り込みます
  • 現在の関数にちなんで新しいバッファに名前を付ける
  • 関数の間接バッファとメインバッファの間をジャンプするためのキーバインド
  • すでに開いている関数に対して新しい間接バッファーを作成しない

それはあなた次第です。


ありがとう、これは進むべき道かもしれません。私は逆も見ることができました:狭められたバッファーから、何かを調べるために拡大された間接バッファーを作成します。
glucas

7

すみません、もっと早くあなたの質問を見ませんでした。

これは、ライブラリゾーン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)も参照してください。メインバッファーのクローンであり、メインバッファーの特定の部分に狭められた間接バッファーをいくつでも簡単に作成できます。


@phils:Thx; 完了しました。実際、それは「ゾーン」ページで言及されていましたが、「複数の絞り込み」ページにも追加しました。
2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.