*gui_x11.txt*   For Vim バージョン 7.4.  Last change: 2011 Sep 14


		  VIMリファレンスマニュアル    by Bram Moolenaar


Vimのグラフィカルユーザーインタフェース			*gui-x11* *GUI-X11*
							*Athena* *Motif*
1. X11 GUIの開始		|gui-x11-start|
2. GUIリソース			|gui-resources|
3. シェルコマンド		|gui-pty|
4. 各種事項			|gui-x11-various|
5. GTKバージョン		|gui-gtk|
6. GNOMEバージョン		|gui-gnome|
7. KDEバージョン		|gui-kde|
8. コンパイル			|gui-x11-compiling|
9. X11セレクション		|x11-selection|

他の重要なドキュメント:
|gui.txt|	GUIの一般的な項目について。

{Vi にはこれらのコマンドはない}

==============================================================================
1. X11 GUIの開始					*gui-x11-start* *E665*

これらのどちらの方法でもVimのGUIバージョンを実行することができる:
    gvim [options] [files...]
    vim -g [options] [files...]

であるから、実行可能な "gvim" を呼ぶか、あるいは "gvim" を実行可能なものとして
リンクさせるならば、GUIバージョンが自動的に使用されるだろう。例えば "gvim-5"
のように、追加の文字が "gvim" の後に追加されてもよい。

これらのコマンドの1つを使用してターミナルバージョンの中からGUIを起動してもよ
い:
	:gui [++opt] [+cmd] [-f|-b] [files...]			*:gu* *:gui*
	:gvim [++opt] [+cmd] [-f|-b] [files...]			*:gv* *:gvim*
"-f" オプションはフォアグラウンドで実行する。
"-b" オプションはバックグラウンドで実行する(これがデフォルト)。
|++opt|と|+cmd|も参照すること。

							*gui-fork*
GUIが開始されるときには、fork()して現在のプロセスを終了する。gvimがシェルから
開始されたときには、これでシェルが更にコマンドを受け入れられるようになる。これ
を望まない(例えば、メールプログラムでgvimを使用しているときにgvimが終了するの
を待つ)ならば、"gvim -f", "vim -gf" でかあるいは ":gui -f" を使用して開始する。
"-fg" は前景色の指定に用いられるので、"vim -fg" を使用してはならない。

"gvim -f" と ":gui" を使用するときには、Vimはフォアグラウンドで実行されるだろ
う。"-f" 引数は記憶されているだろう。Vimを強制的にバックグラウンドで実行するに
は、":gui -b" を使用するとよい。

"gvim --nofork" と "gvim -f" は同じである。
								*E851* *E852*
GUI の初期化に失敗した場合、Vim は現在の端末で実行を継続しようとする。

GUIをいつもフォアグラウンドで実行したければ、'guioptions' の中に 'f' フラグを
含めるとよい |-f|。

==============================================================================
2. GUIリソース				*gui-resources* *.Xdefaults*

GUIのMotifかあるいはAthenaバージョン(KDE, GTK+やあるいはWin32バージョンについ
てではない)を使用しているならば、多くのXのリソースが有効である。これらを設定す
るときには、Vimのクラス "Vim" を使用すべきである。それらは以下のようなものであ
る:

    リソース名		意味		~

    reverseVideo	ブール値: reverse videoが用いられるべきか?
    background		背景色。
    foreground		通常のテキストの色。
    scrollBackground	スクロールバーのくぼみ部分の色。
    scrollForeground	スクロールバーのスライダと矢印部分の色。
    menuBackground	メニューの背景色。
    menuForeground	メニューの前景色。
    tooltipForeground	ツールチップとバルーンの前景色。
    tooltipBackground	ツールチップとバルーンの背景色。

    font		通常のテキストに使用されるフォント名。
    boldFont		ボールドのテキストに使用されるフォント名。
    italicFont		イタリックのテキストに使用されるフォント名。
    boldItalicFont	ボールド、イタリックのテキストに使用されるフォント名。
    menuFond		|+xfontset|が無効なときに使われるメニューのフォント名。
    menuFontSet		|+xfontset|が有効なときに使われるメニューのフォント
			セット名。
    tooltipFont		ツールチップとバルーンに使われるフォント名。
			|+xfontset|が有効なときはこれはフォントセット名である。

    geometry		gvimのウィンドウに用いられる初期サイズ(デフォルトはそ
			れを開始したターミナルと同じサイズ)。
    scrollbarWidth	スクロールバーの厚さ。
    borderWidth		テキストエリアの周りのボーダの厚さ。
    menuHeight		メニューバーの高さ(Athenaのみ)。

イタリック、ボールド、イタリック・ボールドのテキスト用の特別なフォントはユーザー
がリソースを通して指定されたものを持っている場合にだけ用いられるだろう。通常の
テキストのフォントに基づいたこれらのためにどのフォントが用いられるべきであるか
を推測しようとは試みない。

"Normal", "Menu", "Tooltip" と "Scrollbar" グループを使用して、":highlight" コ
マンドで色を設定することもできることを覚えておくとよい。 >
	:highlight Menu guibg=lightblue
	:highlight Tooltip guibg=yellow
	:highlight Scrollbar guibg=lightblue guifg=blue
	:highlight Normal guibg=grey90
<
							*font-sizes*
Note: (メニューとツールチップ以外では)全てのフォントは同じサイズでなければなら
ない!!! こうしなければ、テキストは表示されないか、あるいはめちゃくちゃに表示さ
れるだろう。Vimはフォントサイズをチェックしない。同じでなければならないのはス
クリーンのピクセルにおけるサイズである。いくつかのフォントが同じポイントサイズ
を持っていても、同じピクセルサイズを持っているとは限らないということに注意しな
くてはならない! さらにフォントの配置は同じ(アセントとディセント)でなければなら
ない。"xlsfonts -l {fontname}" でこれをチェックすることができる。

これらのことはいずれもVimコマンド、例えば ":set guifont=Screen15" で設定される
ならば、Xのリソースを無視するだろう(現在 'guifont' がサポートされる唯一のオプ
ションである)。

あなたの~/.Xdefaultsファイルに付加したいかもしれないものを例としてここに挙げ
る: >

	Vim*useSchemes:			all
	Vim*sgiMode:			true
	Vim*useEnhancedFSB:		true
	Vim.foreground:			Black
	Vim.background:			Wheat
	Vim*fontList:			7x13

これらの内の始めの3つはMotifアプリケーションをもっとよく見せるシリコングラ
フィックス製マシンにおける標準リソースであり、大いに推奨されている!

"Vim*fontList" はMotif用のメニューフォントを設定するためのものである。例: >
	Vim*menuBar*fontList:	     -*-courier-medium-r-*-*-10-*-*-*-*-*-*-*
Athenaでは: >
	Vim*menuBar*SmeBSB*font:     -*-courier-medium-r-*-*-10-*-*-*-*-*-*-*
	Vim*menuBar*MenuButton*font: -*-courier-medium-r-*-*-10-*-*-*-*-*-*-*

NOTE: MotifかAthenaでメニューのフォントを決めるのに、移植性が高く、本当に正し
いのは、リソースを使うことである。 >
	Vim.menuFont:	     -*-courier-medium-r-*-*-10-*-*-*-*-*-*-*
|+xfontset|が有効にされているときは >
	Vim.menuFontSet:     -*-courier-medium-r-*-*-10-*-*-*-*-*-*-*

defaultsの中で "Vim*geometry" を使用してはならない。これはメニューを壊すだろ
う。代わりに "Vim.geometry" を使用するとよい。

"Cannot allocate colormap entry for "gray60" のエラーメッセージを受け取ったな
らば、Vimリソースにこれを(色は好みに変更して)追加してみるとよい。 >

	Vim*scrollBackground:		Black
	Vim*scrollForeground:		Blue

リソースはvimへの引数で設定することもできる:

    引数		意味	~
							*-gui*
   -display {display}	{display}上でvimを実行する	*-display*
   -iconic		vimをアイコン化して開始する	*-iconic*
   -background {color}	背景に{color}を使用する		*-background*
   -bg {color}		同上				*-bg*
							*-foreground*
   -foreground {color}	通常のテキストに{color}を使用する
   -fg {color}		同上				*-fg*
   -ul {color}		同上				*-ul*
   -font {font}		通常のテキストに{font}を使用する *-font*
   -fn {font}		同上				*-fn*
   -boldfont {font}	太字テキストに{font}を使用する	*-boldfont*
							*-italicfont*
   -italicfont {font}	斜体のテキストに{font}を使用する
   -menufont {font}	メニュー項目に{font}を使用する	*-menufont*
							*-menufontset*
   -menufontset {fontset} メニュー項目に{fontset}を使用する
   -mf {font}		同上				*-mf*
   -geometry {geom}	初期サイズに{geom}を使用する	*-geometry*
   -geom {geom}		同上。|-geometry-example|を参照	*-geom*
   -borderwidth {width}	{width}のボーダ幅を使用する	*-borderwidth*
   -bw {width}		同上				*-bw*
							*-scrollbarwidth*
   -scrollbarwidth {width}	{width}のスクロールバー幅を使用する
   -sw {width}		同上				*-sw*
							*-menuheight*
   -menuheight {height}	{height}のメニューバー高を使用する
   -mh {height}		同上				*-mh*
			NOTE: Motifではこの値は無視される。メニューの高さは
			ちょうど収まるように計算される。
   -reverse		reverse video を使用する	*-reverse*
   -rv			同上				*-rv*
   +reverse		reverse video を使用しない	*-+reverse*
   +rv			同上				*-+rv*
   -xrm {resource}	指定されたリソースを設定する	*-xrm*

reverse video についての注意: Vimは実際に暗い背景に明るいテキストになるか結果
をチェックする。X11のあるバージョンは色を交換し、あるバージョンはしないからで
ある。これらの2つの例はどちらも青い背景に黄色のテキストを提供するだろう:
    gvim -fg Yellow -bg Blue -reverse
    gvim -bg Yellow -fg Blue -reverse

							*-geometry-example*
geometry引数の例: >
    gvim -geometry 80x63+8+100
これはウィンドウを80カラム、63行で作り、左から8ピクセル、上から100ピクセルの位
置に置く。

==============================================================================
3. シェルコマンド					*gui-pty*

‘警告’: GUIからの外部コマンドの実行は常に動作するとは限らないだろう。"ls",
"grep" とか "make" のような "normal" コマンドはたいていうまく動作する。"less"
とか "ispell" のような知的ターミナルを要求するコマンドは動作しないだろう。ある
ものはハングさえするかもしれないし、他のターミナルからkillされる必要があるかも
しれない。だから気を付けなくてはならない!

シェルコマンドで入出力するには2つの方法がある: パイプと仮想端末(pseudo-tty)で
ある。デフォルトは仮想端末を使用する。これは大抵のシステムで最も良く動作するだ
ろう。

不幸にも、仮想端末の実装はUnixシステム毎に異なっている。そしていくつかのシステ
ムはroot権限を要求する。一番予期しないときに仮想端末における問題に出くわすのを
避けるには、ファイルを編集していないときにそれをテストをするとよい。開始したコ
マンドあるいはVimを "kill" する準備をしなくてはならない。":r !cat" のようなコ
マンドはハングするかもしれない!

仮想端末を使用して動作しないならば、'guipty' オプションをリセットするとよい: >

	:set noguipty

パイプの使用はいくつかのUnixシステムで動作するだろうが、いくつか不都合がある:
- いくつかのシェルコマンドはパイプが使用されていることを通知し、異なった振る舞
  いをするだろう。例えば、":!ls" はファイルの一覧を1桁で出力するだろう。
- ":sh" コマンドは、多少動作するだろうが、プロンプトを表示しないだろう。
- ":make" を使用するときには、CTRL-Cで中断できない。

外部コマンドを実行している間、先行入力された文字はしばしば失われる。これはパイ
プと仮想端末の両方で起こる。これは既知の問題だが、修正できない(かあるいは少な
くとも非常に難しい)と思われる。

							*gui-pty-erase*
削除文字が外部コマンドに不適当であるときには、あなたの "~/.cshrc" ファイル、あ
るいはあなたのシェルを初期化するために用いるどんなファイルででもこれを修正すべ
きである。例えば、文字を削除するためにバックスペースを使用したいが、バックス
ペースを打ち込むことで代わりに "^H" が作り出されるときには、これをあなたの
"~/.cshrc" に追加してみるとよい: >
	stty erase ^H
^Hは本当のCTRL-Hであり、CTRL-V CTRL-Hとタイプする。

==============================================================================
4. 各種事項						*gui-x11-various*

							*gui-x11-printing*
"File/Print" {訳注: 日本語化されたメニューでは、ファイル／印刷}メニューは単に
現在のバッファを "lpr" に送る。オプションや何かは何もない。他に何かしたければ、
あなた自身の印刷コマンドを定義することができる。例えば: >

  :10amenu File.Print :w !lpr -Php3
  :10vmenu File.Print :w !lpr -Php3
<
							*X11-icon*
MotifあるいはAthenaでコンパイルされたときには、Vimはデフォルトで白黒のアイコン
を用いる。色付きのVimアイコンは$VIMRUNTIME/vim32x32.xpmとして含まれる。GTK+に
ついては、組み込みのアイコンが用いられる。不幸にも、どのようにしてそれをインス
トールするかはあなたのウィンドウマネージャに依存する。これを使用するときには、
白黒のアイコンを取り除くために、'guioptions' から 'i' フラグを取り除くとよい: >
  :set guioptions-=i

fvwm*ファミリのウィンドウマネージャの1つを使用するならば、単にあなたの.fvwm2rc
構成ファイルにこの行を追加するとよい: >

  Style "vim"		Icon vim32x32.xpm

アイコンファイルの場所がウィンドウマネージャのImagePath文と一致することを確か
めなくてはならない。あなたの.fvwm2rcを修正するか、あるいは事前に定義されたディ
レクトリの1つにアイコンをドロップするとよい。 >

  ImagePath /usr/X11R6/include/X11/pixmaps:/usr/X11R6/include/X11/bitmaps

Note: 古いバージョンのfvwmでは "ImagePath" ではなく "IconPath" を使う。

CDE "dtwm" (Motifから派生)については、.Xdefaultsにこの行を追加するとよい:
>  Dtwm*Vim*iconImage: /usr/local/share/vim/vim32x32.xpm

"mwm" (Motifウィンドウマネージャ)については、その行はこうなるだろう: >
  Mwm*Vim*iconImage: /usr/local/share/vim/vim32x32.xpm

X11で利用できるマウスポインタ				*X11_mouse_shapes*

|'mouseshape'| オプションを使うと、Vimがモード (挿入モードやコマンドモードなど)
を変更するたびに自動的にマウスポインタを変更できる。現在、利用できるポインタは
次の通り:

	arrow			左上向きの矢印
	beam			「I」のような垂直の棒
	size			上下を指す矢印
	busy			腕時計
	blank			透明なポインタ
	crosshair		細い "+" 印
	hand1			左上向きの暗い手のポインタ
	hand2			左右向きの明るい手のポインタ
	pencil			右下向きのペン型のポインタ
	question		クエスチョンマーク(?)
	right_arrow		右上向きの矢印
	up_arrow		上向きの矢印

さらに、インクルードファイルのX11/cursorfont.hで定義された整数を指定して、
X11に組み込まれたポインタを使うことができる。

他のシステムでは使えても、X11にない名前を指定すると、デフォルトの "arrow" ポイ
ンタが使われる。

==============================================================================
5. GTKバージョン					*gui-gtk* *GTK+* *GTK*

GUIのGTKバージョンはほんの少し異なった動作をする。

GTKは従来のXのリソース設定に使＿わない＿。したがって、~/.Xdefaultsや
app-defaultsは使われない。
伝統的なXコマンドの引数はサポートされない。(例えば -bg, -fg, などの要素)。サ
ポートされているのは:

    コマンドライン引数	   リソース名		意味 ~
    -fn  or  -font	    .font		テキストのフォント名
    -geom  or  -geometry    .geometry		gvimウィンドウのサイズ
    -rv  or  -reverse	    *reverseVideo	黒い背景に白いテキスト
    -display					使用されるディスプレイ
    -fg -foreground {color}			前景色
    -bg -background {color}			背景色

フォントを設定するには、|'guifont'| を参照。GTKについては、これをするメニュー
オプションもある。

さらに、GTKの内部で扱われるこれらのコマンドライン引数がある。それらがどのよう
に用いられるかはGTKのドキュメントを見るとよい。
	--sync
	--gdk-debug
	--gdk-no-debug
	--no-xshm	(GTK+ 2では使われない)
	--xim-preedit	(GTK+ 2では使われない)
	--xim-status	(GTK+ 2では使われない)
	--gtk-debug
	--gtk-no-debug
	--g-fatal-warnings
	--gtk-module
	--display	(GTK+の-displayに対応; 同じように動作する。)
	--screen	(スクリーン番号: GTK+ 2.2ではマルチスレッド対応)

これらの引数は|+netbeans_intg|が有効なときは使われない。
	-xrm
	-mf

色については、Vimの(構文強調表示についての)色の設定はまだ従来のVimの方法でなさ
れている。より多くのヘルプについては|:highlight|を参照。

残りのguiコンポーネント(例えば、メニューバー、スクロールバー、どんなものでも)
の色を設定したければ、GTK特有の設定があり、何かgtkrcファイルの類にそれらを設定
する必要がある。どのようにこれをすべきかについて、どんなに小さなものしかなくて
も、GTKドキュメントを参照しなければならないだろう。

						*gtk-tooltip-colors*
ツールティップの色を明るい黄色の背景に黒のテキストに設定する例: >

	style "tooltips"
	{
		bg[NORMAL] = "#ffffcc"
		fg[NORMAL] = "#000000"
	}

	widget "gtk-tooltips*"          style "tooltips"

~/.gtkrcファイルの中にこれを書くとGTKで用いられるだろう。GTK+ 2では
~/.gtkrc-2.0を使わなければいけないかも知れない。環境による。

GTK+プラグインとしてVimを使う				*gui-gtk-socketid*

GTK+版のVimを普通に起動すると、Vimは自身のトップレベルウィンドウを作成する(技
術的には 'GtkWindow')。GTK+はGtkSocket、GtkPlugウィジェットを使った埋め込み機
能を提供している。あるGTK+アプリケーションが自分のウィンドウにGtkSocketウィ
ジェットを作成していると、別のアプリケーションはトップレベルのGtkPlugウィジェッ
トをソケットIDを使って作成し、先のアプリケーションに自身を組み込める。

Vimのコマンドラインオプションに '--socketid' と10進数や16進数の値を指定すると、
Vimは通常のGtkWindowを使わず、指定された値を使いGtkPlugウィジェットを作成す
る。これはVimがGTK+プラグインとして振る舞うことを可能にする。

これはプログラマ向けのインターフェースであり、それをサポートするアプリケーショ
ン無しではまったく役に立たない。GTK+ソケットについての詳細は次のURLを参考にす
ること。
http://www.gtk.org/api/

Note この機能は最新バージョンのGTKを必要とする。GTK 1.2.10はまだ若干問題があ
る。ソケットの機能はまだGTK+ 2ではテストされていない、自己責任でどうぞ。

==============================================================================
6. GNOME バージョン				*gui-gnome* *Gnome* *GNOME*

GNOME GUI は GTK+ バージョンと同じように機能する。どのように動作するかは上述
の |GTK+| を参照。しかし若干の違いがあり、素の GTK+ GUI では利用できない重要
な機能が 1 つ実装されている。それはセッションマネージャとの相互作用である。
|gui-gnome-session|

見た目の違い:
- GNOME ダイアログを使う (GNOME 1 だけ)。GNOME 2 GUI は同じく素敵な GTK+ 2
  バージョンのダイアログを使う。
- GNOME ドックを使う。したがって、ツールバーとメニューバーは上以外の別の場所
  に移動することができる (例えばツールバーを左や右、上、もしくは下に置け
  る)。メニューバーとツールバーの位置は GNOME 2 バージョンでのみ記憶される。
- これはメニューバーとツールバーのハンドルが戻ってきたということだ! やった!
  もちろんサイズ変更グリッドもまだ使える。

GNOME バージョンは configure が GNOME を認識し、引数--enable-gnome-checkが指定
されていればコンパイルされる。


GNOME セッションサポート		*gui-gnome-session* *gnome-session*

ログアウト時、Vim はバッファのどれかが変更されていると、よく知られた終了確認
ダイアログを表示する。[Cancel] をクリックするとログアウトが取り止めになる。
そうしなかった場合は、現在のセッションが |:mksession| コマンドを使ってディス
クに保存され、次回のログオン時に復元される。

GNOME セッションサポートはおそらく KDE セッションマネージャでも機能する。も
しあなたが何かの問題に直面したらバグレポートを彼らに送っていただきたい。

Note: 自動的なセッションの保存はあなたのセッションファイルやスクリプト、オー
トコマンドの衝突を避けるために実に適切に働く。その手段としては:
- セッションファイルは別のディレクトリに保存される (普通は $HOME/.gnome2)。
- 'sessionoptions' は無視される。代わりにハードコードされた適切なフラグが使
  用される: >
	blank,curdir,folds,globals,help,options,tabpages,winsize
- 内部変数の |v:this_session| はセッションの保存で変更されない。さらに、再び
  ログインしたときに元の値に復元される。

GUI ウィンドウの位置とサイズは保存されない、それはウィンドウマネージャの仕事
である。しかし、GTK+ 2 サポートを有効にしてコンパイルされていると、Vim はウィ
ンドウの役目を復元して WM がウィンドウを識別するのを補佐する (コマンドライン引
数の|--role| を使う)。

==============================================================================
7. KDE バージョン				*gui-kde* *kde* *KDE* *KVim*
							*gui-x11-kde*

KDE バージョンの Vim は存在しない。Qt ツールキットを使って移植する作業が行われ
ていたが、ちゃんと動かなかったので、今は放棄されている。作業は Yzis で継続され
ている: www.yzis.org

==============================================================================
8. コンパイル						*gui-x11-compiling*

X11を使用しているならば、VimのMakefileはデフォルトでは最初にシステム上の必要と
なるGTK+ファイルを見つけようとするだろう。GTK+ファイルが見つけられなかったなら
ば、Motifファイルが検索されるだろう。最終的に、これが失敗するならば、Athena
ファイルが検索されるだろう。3つとも全て失敗するならば、GUIは無効になるだろう。

GTK+については、VimのコンフィギュレーションプロセスはGTK+が適切にインストール
されていることを要求する。つまり、シェルスクリプト 'gtk-config' があなたの‘パ
ス’にあり、既にGTK+プログラムをコンパイル、ビルド、実行できなければならない。
この理由はコンパイラフラグ(CFLAGS)とリンクフラグ(LDFLAGS)が 'gtk-config' シェ
ルスクリプトを通して得られるからである。

もしもGTK+ 2を使いたいなら ./configure の引数に --enable-gtk2-check を渡すこ
と。--enable-gnome-check オプションも指定されたときはGNOME 2もサポートされる。

そうではなくて、MotifあるいはAthenaを使用しているならば、configureが見に行かな
いないディレクトリにMotifあるいはAthenaファイルがあるときには、ディレクトリ名
を記入するためにMakefileを編集しなくてはならない。Motifのディレクトリを設定す
る例については "GUI_INC_LOC"、Athenaについては "CONF_OPT_X" を検索するとよい。

							*gui-x11-gtk*
これを書いている時点で GTK+ 1.0.6 と 1.2 は古いものになっている。GTK 2 の使用
を推奨する。GTK 1 のサポートはおそらくすぐに廃止される。

GTK+ 2 GUI を使うときは GTK+ 2.0 か GTK+ 2.2 シリーズの最新版を使うことが推奨
される。

最後に、GTK+はWin32プラットフォームに恐らく移植されているけれども、これはVim
ではテストされていないし、サポートされてもいない。さらに、GTK+ GUI は一般的
な X11 のコードを使うのでコンパイルできそうもない。これはいつの日か変更され
るかもしれない。特に中心の X11 のコードを取り除くことは GTK+ フレームバッ
ファのサポートにも必要なため。

							*gui-x11-motif*
Motifについては、少なくともMotifバージョン1.2と／あるいはX11R5が必要である。
Motif 2.0とX11R6はOKである。Motif 1.1とX11R4は動作するかもしれないが保証しない
(多少の問題があるかもしれないが、少しの作業でそれをコンパイルし実行させられる
かもしれない、もしあなたがそうするなら、どうか私にパッチを送って欲しい)。
LessTifの最新リリースも問題なく動作すると報告を受けている。

							*gui-x11-athena*
AthenaバージョンはデフォルトでXaw ウィジットセットを用いる。3Dバージョンを持っ
ているならば、代わりにXaw3dでリンクしたいかもしれない。これはメニューを少しよ
く見せるかもしれない。Makefileを編集して、"XAW_LIB" を見に行くようにするとよ
い。スクロールバーは、Vimは既に3Dのそれ自体を持っているので(実際には、それらは
もっとMotifのように見える)、同じままだろう。

							*gui-x11-neXtaw*
neXtawバージョンについては、異なるウィジェットを使うだけでほとんどAthenaと変わ
らない。

							*gui-x11-misc*
一般的には、異なったGTK+, Motif, AthenaとX11のバージョンからのファイルを混ぜよ
うとしてはならない。これは問題を引き起こすだろう。例えば、X11R6用のライブラリ
でX11R5用のヘッダファイルを使用しても動作しないだろう(リンクがエラーメッセージ
を出さないとしても、Vimは後でクラッシュするだろう)。

==============================================================================
9. X11 セレクション					*x11-selection*

X11 を使っている場合、GUI や、xterm で Vim が X11 を認識している状態のとき、
Vim から X11 のセレクションやクリップボードを扱える。それらは "* レジスタと
"+ レジスタを使用して取り扱う。

X11 は 2 つの基本的な共通記憶域、セレクションとカットバッファを提供してい
る。これらは重要な点が異なっている。セレクションはアプリケーションが所有し、
Vim などのアプリケーションが終了するとなくなる、すなわちデータは失われる。一
方、カットバッファは、X サーバーが記憶し、上書きされるか、ログアウトするなどし
て X サーバーが終了するまで保存される。

セレクションの内容はそのアプリケーションによって保存され (コピー)、別のアプリ
ケーションがそれを求めたときに渡される (ペースト)。

カットバッファの内容はすぐに上書きされ、その元のアプリケーションを介さずに、
X サーバーから直接読み込まれる。

							*quoteplus* *quote+*
文書化された 3 つの X セレクションがある。プライマリ (Vim のビジュアルモード
での選択のような、現在の選択範囲を表す)、セカンダリ (不明瞭である)、クリップ
ボード (カット、コピー、ペーストに使われる)。

この 3 つの内、Vim は "* レジスタを読み書きするときにはプライマリを使う (X11
セレクションが利用可能なとき、Vim は |'clipboard'| にデフォルトとして
"autoselect" を設定する)。"+ レジスタを読み書きするときにはクリップボードを
使う。Vim はセカンダリを使わない。

例: (オプションが標準設定のとき)
- Vim のビジュアルモードで URL を選択する。ブラウザの URL 入力欄でマウスのミド
  ルボタンをクリックする。選択したテキストが入力される (うまくいけば!)。
  Note: Firefox では、about:config を開き、middlemouse.contentLoadURL を true
  にすれば、ウィンドウ内をミドルクリックすることで、この URL を開くことができ
  る。
- ブラウザでマウスをドラッグしてテキストを選択する。Vim でマウスのミドルボ
  タンをクリックすると選択したテキストが入力される。
- Vim でテキストを選択して "+y を実行する。ブラウザのテキストエリアでマウス
  をドラッグしてテキストを選択する。そのまま右クリックしてポップアップメ
  ニューから "Paste" を選択する。選択したテキストは Vim で選択したテキストに
  置き換わる。
Note "+ レジスタのテキストはビジュアル選択しただけで変更されない。"* レジス
タは変更される。つまり選択したテキストを上書きできる。
							*x11-cut-buffer*
既定では 8 つのカットバッファがある。CUT_BUFFER0 から CUT_BUFFER7 まで。Vim
は CUTBUFFER0 のみを使う。これは xterm が標準的に使っているものである。

Vim が利用不可能な状態 (終了やサスペンド) になり、他のアプリケーションのセレ
クションの要求に応答できなくなるときはいつでも、Vim は選択されている内容を
CUT_BUFFER0 に書き込む。"+ クリップボードセレクションが Vim のものであると
き、それが優先して書き込まれる。そうでなければ、 "* プライマリセレクションが
Vim のものであるときに、それが書き込まれる。

同様に、Vim が "* や "+ からペーストしようとするとき (明示的、もしくはマウス
のミドルボタンをクリックしたときの暗黙的な "* レジスタの使用)、要求した X セ
レクションが空もしくは利用不可能なら、Vim は CUT_BUFFER0 の現在の値を読み込
む。

Note これによってテキストが CUT_BUFFER0 にコピーされるときは、セレクションの
型情報 (文字、行、矩形) は常に失われる。後にそれをペーストするのが Vim であっ
ても。

通常、Xterm は、選択したものをプライマリと CUT_BUFFER0 の両方に書き込む。
ペースト時には、利用可能であればプライマリが使われ、それができなければ
CUT_BUFFER0 が使用される。このため、Vim と xterm の間でのカットやペーストに
は "* レジスタを使わなければならない。Xterm はクリップボードを使わないので
"+ レジスタは使えない。

最近のほとんどのアプリケーションでは範囲選択でプライマリ ("*) を、カット、コ
ピー、ペーストの操作でクリップボード ("+) を使用するようになっている。そのた
め "* レジスタか "+ レジスタを選択して使用することができる。


 vim:tw=78:sw=4:ts=8:ft=help:norl:
