Go to the first, previous, next, last section, table of contents.

制限

narrowing は、(Emacs の)エディティングコマンドがアドレス可能なテキストの限界 を、バッファ中の文字のある範囲に限ることです。これはまた clipping 制限(域)の設 定としても知られています。 clipping 制限(域)はその制限(域)の始めと終りとを示す 2 つのバッファポジションで示されます。このポジションは、 (ほとんどのエディティ ングコマンドにおいて) バッファの始めと終りの値のかわりに用いられますが、バッ ファの(本当の)始めと終りとを用い(ながら)、 clipping 制限(域)の外のテキストを変 更しようとするとエラーを出す(訳注:signal)コマンドも存在しています。 Undo はこ のようなものの 1例です。セクション 24.8 [Undo]、ページ 233 参照。

clipping 制限(域) が用いられている場合、この領域の外のテキストは表示されませ ん。バッファ motion 関数は、ポイントの値をカレントな clipping 制限(域) の外の 値に設定することはできません。バッファポジションを返す関数は clipping 制限(域) の影響を受けません。返されるポジションは(常に)本当のバッファの先頭に対するもの です。

バッファセービングコマンドは narrowing の影響を受けません。カレントな clipping 制限(域) によらずバッファ全体をセーブします。

Command: narrow-to-region start end

この関数は、カレントな clipping 制限を、 start で始まり end で終るようにし ます。どちらも文字位置(訳注:character position)でなくてはいけません。

インタラクティブに呼ばれた場合、 start と end はカレントのリージョン (region-beginning と region-end) に設定されます。

Command: narrow-to-page move-count

この関数は、clipping 制限がカレントなページをちょうど含むようにします。オ プショナルな最初のアーギュメント move-count が non-nil の場合、そのページ 数だけ前もしくは後ろに移動してから、narrow を行ないます。

インタラクティブに呼ばれた場合、 move-count は(処理された)プレフィックス アーギュメントになります。

Command: widen

この関数は、カレントバッファから clipping 制限を(全て)徐きます。

Special Form: save-restriction forms*

この特殊フォームは、カレントな clipping 制限をセーブし、 forms を評価した 後 clipping 制限をリストアします。異常 exit (throw もしくはエラー) の場合 も clipping 制限はリストアします。ポイントとマークはリストアされません。リ ストアするためには save-excursion を用いて下さい。これは(一時的に) clipping 制限を変更する場合、clipping 制限を自動的にリストアするための(標 準的な)方法です。

この関数は、その本体において(widen を行ない)セーブされた制限領域の外を変更 した場合、混乱を起すもとになりえます。 save-restriction と save-excursion の両方を行いる場合、save-excursion が先に来なくてはいけない点に注意して下 さい。(なぜ??)

  ---------- Buffer: foo ----------
  This is the contents of foo
  This is the contents of foo
  This is the contents of foo
  ---------- Buffer: foo ----------
  (save-excursion
    (save-restriction
      (narrow-to-region 1 80)
      (goto-char (point-min))
      (replace-string "foo" "var")))
  ---------- Buffer: foo ----------
  This is the contents of bar
  This is the contents of bar
  This is the contents of foo
  ---------- Buffer: foo ----------

最後に評価したフォームの返す値か、( forms が与えられない場合) nil を返しま す。


Go to the first, previous, next, last section, table of contents.