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

Excursion

excursion というのは(バッファ内であれ、複数のバッファやウィンドウをまたがって であれ)一時的な移動を意味するのに (Emacs でインフォーマルに)用いられている言葉 です。プログラムにおいて (カレントバッファにおける track やポイント値を失なわ ずに) 他のバッファやカレントなバッファ中の別の位置の情報を得たいことがありえま す。

Emacs は (カレントバッファや selected ウィンドウやマークの自動修復を行なう) excursion を可能にする特別なフォームをいくつか提供しています。ウィンドウを扱う フォームに関してはここでは述べません (セクション 25.11 [save-window- excursion]、ページ 248 参照)。

Special Form: save-excursion forms*

この特殊フォームは、カレントバッファのポイントとマークをセーブし、 forms を評価し、ポイントとマークをリストアします。 (throw や error による) 異常 exit の場合もポイントとマークの値をリストアします。マーカーはバッファ中の ポジションとともにそのバッファも指しているため、マークをリストアすることは (Emacs の) カレントバッファの notion (訳注:??) もリストアすることになりま す。

カレントバッファの notion を変更しなくてはいけない場合や、カレントバッファ のポイントを動かさなくてはいけない場合、カレントバッファとポイントをリスト アできるようにするのは (標準的な)方法です。

別のバッファのポイントやマークはセーブされません。このため(それらの)ポイン トやマークに対する変更は save-excursion の exit 後も保持されます。

save-excursion は、switch-to-buffer のような関数で破壊されたウィンドウと バッファの対応はリストアしません。 selected ウィンドウをリストアする方法の 1つは save-excursion 中で save-window-excursion を用いることです(セクショ ン 25.11 [save-window-excursion]、ページ 248 参照)。

返される値は(最後に)評価されたフォームの返す値か、フォームが与えられていな い場合 nil になります。

  あなたの例をここに


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