検索エンジンから来た人に注意このマニュアルは、Emacs ver. 19.x 向けのマニュアルを Mule 2.x の開発にあたり邦訳したものを、 電脳外道学会がミラーリングしているものであり、旧版製品パラノイアであるところの椅子人の趣味によるものです。しかしながら、現在の Emacs の主流は ver. 20 以降であり、ver 19.x と ver 20.x とでは、仕様の違いが少なからずあります。 したがって、一般的な Emacs ユーザーにとっては、
このマニュアルと実機の動作とが符合しない場合があります。
|
フレーム(frame)は一つ以上のEmacsのウィンドウを含む画面上の長方形 状のものです。フレームには最初は一つのウィンドウ(と多分ミニバッファ)しか ありませんが、縦方向にも横方向にも分割することができます。
Emacsがテキスト専用端末で起動されたときは、一つの端末フレーム (terminal frame)で立ち上がります。追加のフレームを作成したときは、Emacs は同時にはただ一つのフレームだけを、当たり前ですが、端末の画面に表示しま す。
EmacsがXサーバーと直接やりとりするときは、端末フレームの代わりに一つの Xウインドウ・フレーム(X Window frame)で立ち上がります。この場合は 同時に複数のXウインドウ・フレームをそれ自身のXウインドウに表示できます。
tを、それ以外のとき
はnilを返します。
関連する情報はSee section Emacsの表示。
新しいフレームを作るには、make-frame関数を呼び出します。
引数はフレームのパラメータを指定するalistです。alistによって指定さ
れないパラメータはdefault-frame-alist変数の値が用いられます。これ
らで指定されていないパラメータは、標準のX defaultsファイルかXリソースが
デフォルトになります。
どのパラメータが指定できるかは、原則としてEmacsがどのようなウインドウ・ システムにフレームを表示しているかによります。指定可能な個々のパラメータ についての説明は、See section Xウインドウ・フレーム・パラメータ。
make-frameによって実際にフレームが作られる前に起動される正規フッ
クです。
make-frameによってフレームが作られたあとに起動される正規フックです。
一つのEmacsは一つ以上のXウインドウ・ディスプレイとやりとりすることができ
ます。起動時には、Emacsは一つのディスプレイだけを使います。そのディスプ
レイは、DISPLAY環境変数や`--display'オプションで指定されます
(see section `Initial Options' in The GNU Emacs Manual)。別のディスプレ
イに接続するにはコマンドmake-frame-on-displayを使うか、フレームを
作成するときにdisplayフレーム・パラメータを指定してください。
EmacsはそれぞれのXサーバーを独立した端末として扱います。それぞれに選択さ
れたフレームとミニバッファがあります。いくつかのLisp変数は現在の端末(す
なわち現在の選択されたフレームに対応する端末)にローカルな値を持っていま
す。default-minibuffer-frame、defining-kbd-macro、
last-kbd-macro、multiple-frames、system-key-alistが
そうです。これらの変数は常に端末ローカルでバッファローカルにはなり得ま
せん。
一つのXサーバーは一つ以上の画面を扱うことができます。ディスプレイの名前 `host.@linebreakserver.screen'は三つの部分からなります。最後 の部分は与えられたサーバーの画面番号を指定しています。一つのサーバーに属 する二つの画面を使うときは、Emacsはそれらの名前が似通っていることによりそ れらが一つのキーボードを共有していることを知り、それらを一つの端末として 扱います。
make-frameと同様です(see section フレームの作成)。
オプション引数resource-stringがnilでなければ、それは
`.Xresources'ファイルと同じフォーマットのリソース名と値の文字列です。
指定した値はXサーバー自身に記録されている値に優先します。これらはこのディ
スプレイ上に作られる全てのEmacsのフレームに適用されます。これはこの文字
列の例です:
"*BorderWidth: 3\n*InternalBorder: 2\n"
See section Xのリソース。
フレームには、見栄えや振舞いを制御するためのたくさんのパラメータがありま す。フレームがどんなパラメータを持っているかは、どんな表示機構を使ってい るかによって決まります。
フレーム・パラメータはウインドウシステムのためにあります。端末フレームもい
くつかパラメータを持っていますがほとんどが互換性のためのもので、高さ、幅、
buffer-predicateパラメータだけが本当に意味があります。
これらの関数はフレームのパラメータの値を得たり、変更するものです。
frame-parametersはframeのすべてのパラメータとその値から
なるalistを返します。
(parm . value)
という形式です。parmはパラメータのシンボル名です。alistに存
在しないパラメータの値は変更されません。
`.emacs'ファイルでinitial-frame-alistをセットすることで、初
期起動フレームのパラメータを指定することができます。
(parameter . value)
Emacsは初期フレームをあなたの`~/.emacs'ファイルを読む前に作ります。
そのファイルを読んだあとでEmacsはinitial-frame-alistをチェックし、
すでに作った初期フレームの値と違う値のパラメータを適用します。
これらの設定にフレームの位置や大きさの指定が含まれている場合、フレームは 間違った大きさや間違った位置に現れ、次に指定した大きさや位置に変更される ことになります。これが気になるなら、Xリソースで同じように位置や大きさを 指定することができます。これはフレームが作られる前に適用されます。 See section `X Resources' in The GNU Emacs Manual。
一般的にXリソースは全てのフレームに適用されます。あるXリソースを初期フレー
ムだけに指定して、その後のフレームには適用したくない場合は、つぎのよ
うにしてください。その後のフレームではそのXリソースを無効にするために
default-frame-alistでパラメータを指定し、次にそれらが初期フレーム
に影響しないように同じパラメータをinitial-frame-alistでXリソース
に一致する値に指定します。
これらのパラメータが独立したミニバッファ専用フレームを(minibuffer .
nil)で指定していて、それがまだ作られていない場合には、Emacsはそれを作り
ます。
section 表示に用いるウィンドウの選択のspecial-display-frame-alistも見てください。
Emacsを起動するときにウインドウの見栄えを指定するオプションを使うと、
default-frame-alistに要素を追加することにもなります。ただし、
`-geometry'オプションだけは、その指定する位置が
initial-frame-alistに追加されます。See section `Command Arguments' in The GNU Emacs Manual。
フレームがどんなパラメータを持っているかは、どんな表示機構を使っているか
によって決まります。以下はXウインドウ・フレームのパラメータの表です。この
中でname、height、width、buffer-predicateは
非Xフレームでも有効です。
name
display
DISPLAY環境変数
のような形式"host:dpy.screen"の文字列でなくては
なりません。
left
(+
pos)のリストのどちらでも構いません。
負の数-posや形式(- pos)のリストは、実は画面の
右端から見たウインドウの右端の位置を指定します。posの正の値は左に
向かって数えます。パラメータが負の整数-posならposは正
になります!
top
(+
pos)のリストのどちらでも構いません。
負の数-posや形式(- pos)のリストは、実は画面の
下端から見たウインドウの下端の位置を指定します。posの正の値は上に
向かって数えます。パラメータが負の整数-posならposは正
になります!
icon-left
icon-top
user-position
nilになります。自動的に非nilにな
ることはありません。leftとtopパラメータに加えてこのパラメー
タを指定するのはmake-frameを呼び出すLispプログラムの責任です。
(25)
height
frame-pixel-heightを呼び出してください。section フレームのサイズと位置参
照。)
width
frame-pixel-widthを呼び出してください。section フレームのサイズと位置参
照。)
window-id
minibuffer
tのときはミニバッファを持ち、nilのときは持ちません。
onlyのときはこのフレームはミニバッファそのものになります。値が(別
のフレームにある)ミニバッファ・ウインドウのときには、新しいフレームはそ
のミニバッファを使います。
buffer-predicate
nilで
なければ、関数other-bufferはどのバッファを候補にするかを決めるの
に(選択されたフレームの)この述語を使います。この述語はそれぞれのバッファ
ごとにそれを引数として呼び出されます。この述語が非nilを返すとその
バッファは候補になります。
font
auto-raise
nilの
とき上昇します)。
auto-lower
nilのとき下降します)。
vertical-scroll-bars
nilのとき表示します)。
horizontal-scroll-bars
nilのとき表示します)。(横方向のスクロール・バーはまだ実装されてい
ません。)
scroll-bar-width
icon-type
nil値はデフォルトのビットマップ・アイコ
ン(ウシカモシカ(gnu)の絵)の使用を指定します。nilはテキスト・アイ
コンを指定します。
icon-name
nilならフ
レームのタイトルを使います。
foreground-color
background-color
mouse-color
cursor-color
border-color
cursor-type
barとboxと
(bar . width)です。シンボルboxはよくあるやり方で、ポ
イントの後の文字に黒い箱を重ね書きします。これがデフォルトです。シンボル
barはカーソルとして文字の間に縦棒を置きます。(bar
. width)はwidthピクセル幅の棒を指定します。
border-width
internal-border-width
unsplittable
nilの場合、このフレームのウインドウは自動的に分割されません。
visibility
nilは不可視、tは可視、iconはアイコン化されています。
See section フレームの可視性。
menu-bar-lines
parent-id
フレーム・パラメータleft、top、height、width
を使うとフレームのサイズや位置を変更したり読み出したりすることができます。
指定されない位置やサイズのパラメータは、ウインドウ・マネージャがそれぞれ
の流儀で決めてくれます。
サイズや位置を扱うための特別な機能がいくつかあります:
ピクセル単位でサイズをセットするには、値をframe-char-heightと
frame-char-widthを使って文字数単位に変換してください。
マルチ・フレームをサポートしていないバージョンのEmacsで画面の高さと幅を
指定するのに使われた、set-screen-heightとset-screen-width
は旧式の関数ですがまだ使えます。これらの関数は選択されたフレームに対して
働きます。See section 画面サイズ。
x-parse-geometry関数は標準的なXウインドウのgeometry文字列を
make-frameの引数の一部として使うことのできるalistに変換します。
alistはgeomで指定されるパラメータとその値を表現します。それぞれの
要素は(parameter . value)というような形です。
parameterとして許されるものはleft、top、width、
heightです。
サイズのパラメータの値は整数でなくてはなりません。位置のパラメータ名
leftとtopは、ある値のときには右または下の端の位置を示すこ
とがあるので、完全には的確な名前ではありません。以下はvalueが位置
のパラメータとしてとり得る値です:
(+ position)
(- position)
例:
(x-parse-geometry "35x70+0-0")
=> ((width . 35) (height . 70)
(left . 0) (top - 0))
全てのフレームはタイトルを持ち、ほとんどのウインドウ・マネージャはフレー
ムの上端にフレーム・タイトルを表示します。nameフレーム属性を使っ
て明示的にタイトルを指定することができます。ですが、普通はこれを明示的に
指定せず、Emacsが自動的に作成するタイトルを使います。
Emacsはフレーム・タイトルを変数frame-title-formatにはいっているテン
プレートを元にして作成します。
この変数の値は実際にはmode-line-formatのようなモード行構成要素
です。See section モード行の表示をコントロールするデータ構造。
t
になります。frame-title-formatのデフォルト値では、
multiple-framesを使って二つ以上のフレームがあるときにだけバッファ
の名前をフレーム・タイトルに入れるようにしています。
この変数は常に現在の端末にローカルでバッファローカルにはできません。 See section 複数のディスプレイ。
フレームは明示的に消去(delete)するまでは可視になることができる状態 でいつづけます。消去されたフレームは画面上には出てきませんが、Lispオブジェ クトとしては全ての参照がなくなるまで存在し続けます。消去されたフレームを 元に戻す方法は、保存してあったフレームの構成(see section フレーム構成)を復元するのを除けば、存在しません。これはウインドウの場 合と同じです。
frame-live-pはフレームframeが消去されていなければ非
nilを返します。
あるウインドウ・マネージャにはウインドウを消去するコマンドがあります。これ
は特別なメッセージをウインドウを操作しているプログラムに送ることによって
実現されています。Emacsがこれらのコマンドのうちの一つを受けとると、
delete-frameイベントが発生します。このイベントの通常の定義は関数
delete-frameを呼び出すコマンドです。See section そのほかのウィンドウ・システム・イベント。
frame-listは消去されていない全てのフレームのリストを返します。
これはバッファの場合のbuffer-listと似ています。返されるリストは新
しく作られたものなので、リストを変更してもEmacsの内部には何の効果もあり
ません。
next-frameは、任意のフレームから始められる全てのフレームを含
む便利な環を提供します。その環の中でframeの"次"のフレームを返し
ます。frameが省略されたときやnilのときのデフォルトは選択さ
れたフレームです。
2番目の引数minibufはどんなフレームに注目するかを指定します:
nil
visible
next-frameと同様ですが、環のまわる方向が逆です。
section ウィンドウの循環順序のnext-windowとprevious-window
も参照してください。
それぞれのウインドウはただ一つのフレームに属していて、
window-frameを使うとそのフレームを得ることができます。
一つのフレームに含まれる、ミニバッファ以外の全てのウインドウには循環する 順番がついています。順番は上左端のウインドウが先頭で、そこから下または右 へ向かって下右端のウインドウ(フレームがミニバッファを含んでいる場合は常 にミニバッファ・ウインドウ)まで進み、先頭に戻ります。
常に全てのフレームにはただ一つのそのフレーム内の選択された
(selected within the frame)ウインドウがあります。つまり、フレームを選択
することはすなわちこのウインドウを選択することにもなります。フレームの現
在選択されているウインドウはframe-selected-windowで得ることができ
ます。
逆にいうと、Emacsではselect-windowを使ってウインドウを選択するこ
とは、そのウインドウが存在するフレーム内の選択されたウインドウをそのウイ
ンドウにします。See section ウィンドウの選択。
(普通は)フレームの中のウインドウの一つを返すもう一つの関数に
minibuffer-windowがあります。See section ミニバッファそのほか。
通常はそれぞれのフレームはその最下部にそれ自身のミニバッファ・ウインドウ
を持っていて、あるフレームが選択されたときはそのフレームのミニバッファ・
ウインドウが使われます。フレームがミニバッファを持っていれば
minibuffer-windowで得ることができます(see section ミニバッファそのほか)。
ですが、ミニバッファを持たないフレームも作ることができます。そのようなフ
レームはどれかほかのフレームのミニバッファ・ウインドウを使わなければなりま
せん。フレームを作るときにどの(ある別のフレームの)ミニバッファ・ウインド
ウを使うか指定することもできます。指定しなかった場合は、変数
default-minibuffer-frameが指すフレームのミニバッファを使うことに
なります。この変数の値はミニバッファを持っているフレームでなければなりま
せん。
ミニバッファ専用フレームを使っていると、ミニバッファに入力するときに自動
的に上昇して欲しいかもしれません。そういうときは変数
minibuffer-auto-raiseをtにセットしましょう。See section フレームの上昇/下降。
どんなときでも、一つのフレームが選択されたフレーム(selected frame) になっています。選択されたウインドウはいつも選択されたフレームの中にあり ます。
通常Xサーバは、キーボードからの入力をマウスがいるXのウインドウに送ります。 いくつかのウインドウ・マネージャはこういうXサーバの通常の動作を無効にし て、マウスのクリックやキーボードのイベントを使って個々のXのウインドウへ のフォーカスの移動(shift the focus)を行ないます。
select-frameを呼ぶことによってLispプログラムでフレームを"一時的
に"切替えることができます。これはウインドウ・マネージャを無効にするので
はなく、むしろウインドウ・マネージャがどうにかしてでしゃばってくるまでの
間、ウインドウ・マネージャの制御から逃れるということです。
テキスト専用端末を使っているときはウインドウ・マネージャはいません。した
がってswitch-frameがフレームを切替える唯一の方法で、次に
switch-frameが呼ばれるまで有効ということになります。選択された端
末フレームだけが実際に端末に表示されます。初期の端末フレーム以外の端末フ
レームはそれぞれ番号を持っていて、選択されたフレームの番号はモード行
の`Emacs'の後に表示されます(see section モード行の中で使用されている変数)。
EmacsはXサーバーやウインドウ・マネージャと協力して、サーバーとウインドウ・
マネージャの要求にしたがってどのフレームを選択するか調整します。このとき
フォーカス(focus)イベントと呼ばれる特殊な入力イベントが発生します。
コマンド・ループはhandle-switch-frameを呼び出してフォーカス・イベ
ントを処理します。See section フォーカス・イベント。
フォーカス・イベントは通常このコマンドを起動することによって自分の仕事を 行ないます。ほかにどんな理由があってもこれを呼び出してはいけません。
last-event-frameはfocus-frameに
なります。また、frameを指定するフレーム切替えイベントはかわりに
focus-frameを選択することになります。
focus-frameがnilのときは、frameに関する全てのリダイレ
クトをキャンセルします。したがって、また自分に向けられたイベントを受け取
ることになります。
フォーカスのリダイレクトの使い道の一つとしてミニバッファを持たないフレー ムがあります。このようなフレームは別のフレームのミニバッファを使います。 別のフレームのミニバッファがアクティブになるとフォーカスはそのフレームに リダイレクトされます。マウスがミニバッファをアクティブにしたフレームに残っ ていたとしても、フォーカスはミニバッファが所属しているフレームに移ります。
あるフレームを選択することはフォーカスのリダイレクトを変えることでもあり
得ます。フレームfooが選択されているときにフレームbarを選択
すると、fooを指していた全てのリダイレクトがかわりにbarを指
すことになります。この動作は、あるフレームから別のフレームへ
select-windowを使って切替えたときに、フォーカスのリダイレクトがき
ちんと働けるようしています。
つまり、自分自身にフォーカスをリダイレクトしているフレームはフォーカスの
リダイレクトをしていないフレームと違う扱いを受けるということです。
select-frameは前者には働くが後者には働かないのです。
リダイレクトはredirect-frame-focusが呼ばれてリダイレクトが変更さ
れるまで、有効です。
Xウインドウ・フレームは、可視(visible)、不可視(invisible)、 アイコン化(iconified)のいずれかの状態にあります。もし可視なら、そ の中身を見ることができます。もしアイコン化されていたら、フレームの中身は 画面には現れていませんが、アイコンが見えます。もし不可視なら、そのフレー ムは画面上には見えていませんし、アイコンも同様です。
端末フレームにおいては、どんな場合でも選択されたものしか実際には表示され ないので可視性は無意味です。
t、不可視ならnil、アイコン化されていればiconを返し
ます。
可視性の状態はフレーム・パラメータにもありますので、それを読み出したり変更 したりすることもできます。See section Xウインドウ・フレーム・パラメータ。
ユーザはウインドウ・マネージャを使ってフレームをアイコン化したりアイコン 化を解除することができます。これはEmacsが制御できるレベルよりも下位のレ ベルで行なわれますが、このような変更をたどるのにイベントを使うことができ ます。
Xウインドウ・システムは机の暗喩を用いています。この暗喩の中に、ウインドウ が、画面と垂直の方向の想像上の3番目の次元の中に積み重なっていて、"最高" から"最低"まで順序づけられているというアイデアがあります。二つのウイン ドウが重なっている場所は、高い方が低い方を隠してしまいます。もっとも低い ウインドウでも、ほかのウインドウがその上に重なっていなければ見ることができ ます。
このウインドウの順番は固定ではありません。むしろ、この順番は頻繁に変更さ れることが多いでしょう。ウインドウを上昇(raising)させるというのは、 ウインドウを重なりの1番上に"持ちあげる"ことを意味します。ウインドウを 下降(lowering)させるというのは、ウインドウを重なりの1番下へ移動し ます。この移動は想像上の3番目の次元の中だけで、ウインドウの画面上の位置 は変わりません。
以下の関数を使ってEmacsのXのウインドウを上昇、下降させることができます:
nilの場合、ミニバッファがアクティブになったときにミニバッファ・
ウインドウが属するフレームが上昇します。
フレーム・パラメータを使ってフレームごとに、自動上昇(フレームが選択され たときに自動的に上昇する)や自動下降(フレームが選択されなくなったときに自 動的に下降する)するようにもできます。See section Xウインドウ・フレーム・パラメータ。
フレーム構成(frame configuration)とは、現在のフレーム群の配置、全 ての属性、それぞれのウインドウの構成を記録することです。
マウスを追跡(track)することは、すなわちマウスがどこにあるのかを指 し示すために何かを表示したり、それをマウスの動きに応じて動かすことは、し ばしば役にたちます。 効率よくマウスを追跡にするためには、マウスが実際に動くまで待つ方法が必要 です。
マウスを追跡する便利な方法は、マウスの移動を表すイベントを得ることです。 そうすれば、イベントを待つことによってマウスの移動を待つことができます。 おまけに、おそらく起きるであろうほかの種類のイベントを容易に扱うことができ ます。普通、永遠にマウスを追跡したりはせず、ボタンを離すとかいったあるほか のイベントがおこるまでしか追跡しないので、これは役にたちます。
read-eventやread-key-sequenceを使って
それらのイベントを読みとることができます。マウス移動イベントのフォーマッ
トについては、See section 移動イベント。
track-mouseの返り値は、bodyの最後の形式の値になります。
マウスの追跡の通常の用途は、現在位置でボタンを押したり離したりしたことの 結果を画面に表示することです。
多くの場合、mouse-faceテキスト属性を使うことによってマウスを追跡
しなくてもすませることができます(see section 特殊な意味をもつ属性)。これは非常
に低レベルで働きますので、Lispレベルのマウスの追跡よりもスムーズに動作
します。
関数mouse-positionとset-mouse-positionはマウスの現在位置へ
アクセスする手段を提供します。
(frame x
. y)という感じで、xとyはframeの上左端からの文字
数単位の位置を表す整数です。
mouse-positionと同じです。
set-mouse-positionと同じようにマウスをワープさせます。この
座標はフレームの内部でなくても構いません。
Xウインドウを使っているときは、Lispプログラムはユーザがマウスで選択でき るメニューをポップアップすることができます。
引数positionは画面のどこにメニューを置くかを指定します。この引数は マウス・ボタン・イベント(ボタンを押した場所にメニューを置くことになりま す)か次の形式のどちらでも構いません:
((xoffset yoffset) window)
xoffsetとyoffsetはwindowのフレームの左上端からのピクセ ル単位の座標です。
positionがtの場合は現在のマウスの位置を使います。
positionがnilのときは、実際にはメニューを表示せずに
menuの中のキーマップで指定されたものの等価なキー・バインドをあらか
じめ調べておきます。
引数のmenuはメニューに何を表示するかを指示します。キーマップかキー マップのリスト(see section メニュー・キーマップ)、もしくは次のような形式をとります:
(title pane1 pane2...)
それぞれの枠(pane)は次の形式のリストです。
(title (line . item)...)
それぞれのlineは文字列で、itemはそのlineが選ばれたときに 返される値です。
使用上の注意: あるメニューが前置キーにメニュー・キー
マップとしてバインドされている場合は、そのメニューを表示するのに
x-popup-menuを使ってはいけません。
メニューをつくるのにメニュー・キーマップを使った場合は、C-h cと
C-h aでそのメニューの中のそれぞれの項目を見ることやヘルプを出すこ
とができます。そうではなく、x-popup-menuを呼び出すコマンドによっ
てメニューを定義した場合は、ヘルプ機能はそのコマンドの中で何が行なわれて
いるのかを知ることはできませんので、そのメニューの項目に関してヘルプを出
すことはできません。そのため、メニュー・バーの全ての項目は普通はメニュー・
キーマップを用いて作られています。
ダイアログ・ボックスはポップアップ・メニューの変形です。常にフレームの真
中に現れ、一つの階層と一つの枠(pane)しか持っていないところが違います(X
Toolkitを使っている場合)。ダイアログ・ボックスは、"yes"か"no"などで
答えられる質問をするのに主に使われます。関数y-or-n-pと
yes-or-no-pは、マウス・クリックで起動されたコマンドから呼び出され
た場合、キーボードの代わりにダイアログ・ボックスを使用します。
(title (string . value)...)
これはx-popup-menuに一つの枠を指定するときのリストに似ています。
返り値は選ばれた選択肢のvalueになります。
リストの要素は(string . value)というコンス・セルの代
わりにただの文字列でも構いません。その場合は選択できない箱になります。
リストの中にnilがある場合は、項目を右と左に分ける働きをします。
nilよりも前にある項目は左に、後にある項目は右に表示されます。リス
トの中にnilがない場合は、おおよそ半分ずつ左右に分けられます。
ダイアログ・ボックスは、常にフレームの中央に表示されます。引数
positionはどのフレームに表示するかを指定します。とりうる値は
x-popup-menuと同様ですが、細かい座標は無視され、フレームだけが認
識されます。
あなたのEmacsの実行形式がX toolkitを使用しない設定で作られている場合は、 本物のダイアログ・ボックスは使えません。その代わり同じ項目のポップアップ・ メニューをフレームの中央に表示します。
これらの変数はいろいろな状況でのマウス・ポインタの形状を指定します:
x-pointer-shape
x-sensitive-text-pointer-shape
これらの変数は新しく作られたフレームに影響を与えます。存在するフレームに 影響することは普通はありませんが、フレームのマウスの色をセットするとポイ ンタの形状もこれらの変数の現在の値に基づいて更新されます。See section Xウインドウ・フレーム・パラメータ。
これらのポインタの形状のどちらをも指定するのに使える値は、ファイル `lisp/x-win.el'で定義されています。これらのリストを見るにはM-x apropos RET x-pointer RETを使ってください。
Xサーバーはアプリケーション間でデータを交換できるようにするためにセ レクション(selection)のセットを記録します。さまざまなセレクションは セレクション・タイプ(selection type)で識別されます。セレクション・ タイプはEmacs上ではシンボルで表されます。Emacsを含むXクライアントは、与 えられたどのタイプのセレクションでも読んだりセットしたりできます。
nilの場合は、そのセレクションをクリアします。それ以外
にdataには次のいずれかを指定できます。文字列、シンボル、整数(また
は二つの整数のコンスやリスト)、オーバーレイ、同じバッファを指している二つの
マーカのコンス。オーバーレイやマーカのペアは、オーバーレイの中やマーカの間
のテキストを表します。
dataは、上記非ベクタのセレクションの値のベクタでも構いません。
それぞれの可能なtypeは、それ自身の独立に変更可能なセレクションの値
を持っています。
通常typeの値はPRIMARYとSECONDARYです。これらのシンボ
ルはXウインドウ・システムの慣習に合わせて大文字の名前になっています。デフォ
ルトはPRIMARYです。
PRIMARYです
data-type引数は、ほかのXクライアントから得た生のデータをLispデータに
変換するときに使用するデータ変換の形式を指定します。
意味がある値は、TEXT、STRING、
TARGETS、LENGTH、DELETE、FILE_NAME、
CHARACTER_POSITION、LINE_NUMBER、COLUMN_NUMBER、
OWNER_OS、HOST_NAME、USER、CLASS、
NAME、ATOM、INTEGERです(これらのシンボルはXの慣習に
合わせて大文字の名前になっています)。デフォルトはSTRINGです。
Xサーバーは、テキストやほかのデータをアプリケーション間でやりとりできる、 番号付のカット・バッファ(cut buffer)のセットも持っています。カッ ト・バッファはobsoleteとみなされていますが、Emacsはまだこれを使っているX クライアントのためにサポートしています。
t、そうでないならnilを返します。
これは使っているディスプレイがその色をちゃんとサポートしているかどうかは 教えてくれないことに注意してください。任意の種類のディスプレイで定義され ている色のどれかについて問い合わせて、Xサーバーがどう働くかについてある 結果を得ることができます。これはあなたのディスプレイが色colorをサ ポートしているかどうかテストする近似的方法です:
(defun x-color-supported-p (color)
(and (x-color-defined-p color)
(or (x-display-color-p)
(member color '("black" "white"))
(and (> (x-display-planes) 1)
(equal color "gray")))))
nilです。
(x-color-values "black")
=> (0 0 0)
(x-color-values "white")
=> (65280 65280 65280)
(x-color-values "red")
=> (65280 0 0)
(x-color-values "pink")
=> (65280 49152 51968)
(x-color-values "hungry")
=> nil
x-get-resourceは、Xウインドウのデフォルト・データベースか
らリソースの値を取り出します。
リソースは、キー(key)とクラス(class)の組合せの索引がつけられ ています。この関数は、 `instance.attribute'(instanceは、Emacsが起動され たときの名前です)の形式をキーに、`Emacs'をクラスとして使って検索し ます。
オプション引数componentとsubclassは、それぞれキーとクラスにつ け加えられます。これらは両方とも指定するか、両方とも指定しないかのどちら かでなければなりません。これらを指定したときにはキーは `instance.component.attribute'となり、クラスは `Emacs.class.subclass'となります。
See section `X Resources' in The GNU Emacs Manual。
この節では、Emacsが使っているXサーバーの能力や素性に関する情報を得るため
の関数について説明します。
これらの関数それぞれにはあなたが注目しているディスプレイを指定するように
なっています。display引数にはディスプレイの名前とフレーム(つまりそ
のフレームが表示されているディスプレイを使います)のどちらでも指定できま
す。display引数を省略、もしくはnilを指定した場合は、選択さ
れたフレームのディスプレイを使うことになります。
always、when-mapped、not-usefulです。
nilを返します。
static-gray、gray-scale、static-color、
pseudo-color、true-color、direct-colorのいずれかで
す。
tを返します。
tを返します。
Go to the first, previous, next, last section, table of contents.