GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Frames.html ・ emacs-doc.conao3.com

30フレーム

フレームとは、1つ以上のEmacsウィンドウ(ウィンドウを参照)を含む画面オブジェクトのことです。これはグラフィカル環境の用語で「ウィンドウ」と呼ばれる種類のオブジェクトですが、ここではEmacsがその語を異なる意味で使用しているため、「ウィンドウ」と呼ぶことはできません。Emacs Lispにおいて、フレームオブジェクトとは、画面上のフレームを表すLispオブジェクトのことです。フレームタイプを参照してください。

フレームには初期状態で単一のメインウィンドウおよび/またはミニバッファウィンドウが含まれており、メインウィンドウを垂直または水平方向に分割して小さなウィンドウを作成できます。ウィンドウの分割を参照してください。

ターミナルとは、1つ以上のEmacsフレームを表示できる表示装置のことです。Emacs Lispにおいて、ターミナルオブジェクトとは、ターミナルを表すLispオブジェクトのことです。ターミナルタイプを参照してください。

ターミナルには、テキストターミナルとグラフィカルターミナルの2種類があります。テキストターミナルとは、xtermやその他のターミナルエミュレータを含む、グラフィックス表示機能を持たないディスプレイのことです。テキストターミナルでは、各Emacsフレームがターミナルの画面全体を占有します。追加のフレームを作成してそれらを切り替えることはできますが、ターミナルには一度に1つの非子フレームしか表示されません。このフレームはそのターミナルのトップフレームと呼ばれ、後述する関数tty-top-frameで取得できます。トップフレームは子フレーム(子フレームを参照)を持つことができ、それらはトップフレームと共に表示されますが、トップフレーム自体が子フレームになることはできません。

一方、グラフィカル端末はX Window Systemなどのグラフィカル表示システムによって管理されており、これによりEmacsは同一のディスプレイ上で複数のフレームを同時に表示できます。

GNUおよびUnixシステムでは、Emacsがテキスト端末で起動したかグラフィカル端末で起動したかにかかわらず、単一のEmacsセッション内で、利用可能な任意の端末に追加のフレームを作成できます。Emacsは、グラフィカル端末とテキスト端末の両方に同時に表示することが可能です。これは、例えば複数のリモート拠点から同一のセッションに接続する場合などに便利です。複数の端末を参照してください。

関数: framep object

この述語は、object がフレームの場合は非 nil 値を、それ以外の場合は nil を返します。フレームの場合、この値はそのフレームがどの種類のディスプレイを使用しているかを示します:

t

フレームがテキスト端末に表示されます。

x

フレームはXグラフィカルターミナル上に表示されます。

w32

フレームはMS-Windowsのグラフィカル端末に表示されます。

ns

フレームはGNUstepまたはMacintosh Cocoaのグラフィカルターミナルに表示されます。

pc

フレームはMS-DOS端末上に表示されます。

haiku

フレームはHaiku Application Kitを使用して表示されます。

pgtk

フレームは純粋なGTK機能を用いて表示されます。

android

フレームはAndroid端末に表示されます。

関数: frame-terminal &optional frame

この関数は、frame を表示する端末オブジェクトを返します。frame が nil または未指定の場合は、選択中のフレームがデフォルトとなります(入力フォーカス を参照)。

関数: terminal-live-p object

この述語は、object がライブ状態(すなわち削除されていない)の端末である場合は非 nil 値を、それ以外の場合は nil を返します。ライブ端末の場合、戻り値はその端末にどのような種類のフレームが表示されているかを示します。取り得る値の一覧は、上記の framep と同様です。

関数: frame-initial-p &optional frame

この述語は、frame がデーモンモード(The GNU Emacs Manual の daemon を参照)、バッチモード(Batch Mode を参照)、および起動初期段階(Summary: Sequence of Actions at Startup を参照)で内部的に使用される初期テキストフレームである場合に、non-nil を返します。例えば、対話型プログラムやグラフィカルプログラムでは、この述語を用いることで、決して表示されない初期フレームに対する操作を避けることができます。

frame が終端である場合、frame が初期フレームを保持していれば、この関数は non-nil を返します。frame が省略されているか、あるいは nil である場合は、選択された方がデフォルトとなります。

グラフィカル端末では、2種類のフレームを区別します。通常のトップレベルフレームとは、その端末のウィンドウシステムのウィンドウが、ウィンドウシステムのルートウィンドウの子となっているフレームのことです。子フレームとは、そのウィンドウシステムのウィンドウが、別のEmacsフレームのウィンドウシステムのウィンドウの子となっているフレームのことです。子フレームを参照してください。

テキスト端末では、以下の関数で最上部のフレームを取得できます。

関数: tty-top-frame &optional terminal

この関数は、terminal にある最上位フレームを返します。terminal には、ターミナルオブジェクト、フレーム(そのフレームのターミナル)、または nil(選択中のフレームのターミナル)を指定します。テキストターミナルを指さない場合、戻り値は nil となります。最上位フレームはルートフレームである必要があり、つまりそれ自体が子フレームになることはできません(子フレーム を参照)が、そこから派生する子フレームは任意の数持つことができます。

関数: frame-id &optional frame

この関数は、frame に割り当てられたフレームの一意の識別子(整数)を返します。frame が nil であるか、または指定されていない場合は、選択中のフレームがデフォルトとなります(入力フォーカス を参照)。これにより、フレームオブジェクトを使用できない、あるいは使用しない状況において、フレームを一意に特定することができます。

undelete-frame を用いて削除されなかったフレームは、識別子を保持します。clone-frame を用いてクローン作成されたフレームは、元の識別子を保持しません。Emacs マニュアル の フレームコマンド を参照してください。

フレーム識別子は、デスクトップライブラリ(デスクトップ保存モードを参照)、frameset-to-register、またはframeset-saveを用いて永続化されず、復元された各フレームには新しい一意のIDが付与されます。