5

Emacs で「save-restriction」の説明を検索すると、「バッファーの制限」に関する文があります。以下に完全な説明を含めました。この用語はどういう意味ですか? 保存制限​​はどのように機能し、これを考慮していつ使用する必要がありますか?

(save-restriction &rest BODY) 

Execute BODY, saving and restoring current buffer's restrictions.
The buffer's restrictions make parts of the beginning and end invisible. 
(They are set up with `narrow-to-region' and eliminated with `widen'.)
This special form, `save-restriction', saves the current buffer's restrictions
when it is entered, and restores them when it is exited.
So any `narrow-to-region' within BODY lasts only until the end of the form.
The old restrictions settings are restored
even in case of abnormal exit (throw or error).

The value returned is the value of the last form in BODY.
4

2 に答える 2

12

コードの目的が制限、現在のバッファー、ポイント、またはウィンドウの構成を変更することでない限り、適切な保存メソッドを使用して状態を記憶し、自動的に復元する必要があります。

  • save-current-buffer現在のバッファを保存するので、元に戻すことを忘れずに別のバッファに切り替えることができます。
  • save-excursionは、現在のバッファとその現在のポイントとマークも保存するので、復元することを忘れずにポイントを移動できます。
  • save-restriction制限を保存するので、widen復元することを忘れずに絞り込むことができます。
  • save-window-excursion現在のバッファ内のポイントの値を除いて、フレーム上のすべてのウィンドウの完全な構成を保存します。

(補足:私が最後に使用したときは、方法save-window-excursionがありませんでしwindow-configuration-pた。)

于 2012-07-21T22:24:53.950 に答える
3

save-restriction は、narrow-* 関数によって使用され、現在の buffer を保存してから、それを非表示にして復元できるようにします。

'save-restriction' は、すべての 'buffer' データ構造、特に point-min、point-max、point-max-marker などを記憶します。たとえば、narrow-function がバッファーの可視性を変更する前に、widen() を使用して復元できるようにするために、古い構成を記憶します。

于 2012-07-21T21:37:42.257 に答える