*gui_x11.txt* For Vim バージョン 8.1. Last change: 2019 May 05 VIMリファレンスマニュアル by Bram Moolenaar
Vim のグラフィカルユーザーインターフェイス
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 の一般的な項目について。 |
これらのどちらの方法でも Vim の GUI バージョンを實行することができる:
gvim [options] [files...] vim -g [options] [files...]
であるから、實行可能な "gvim" を呼ぶか、あるいは "gvim" を實行可能なものとしてリンクさせるならば、GUI バージョンが自動的に使用されるだらう。例へば "gvim-5" のやうに、追加の文字が "gvim" の後に追加されてもよい。
これらのコマンドの1つを使用してターミナルバージョンの中から GUI を起動してもよい:
:gui [++opt] [+cmd] [-f|-b] [files...] :gvim [++opt] [+cmd] [-f|-b] [files...]
"-f" オプションはフォアグラウンドで實行する。
"-b" オプションはバックグラウンドで實行する (これがデフォルト)。
|++opt| と |+cmd| も參照すること。
Note:
技術的な理由で、:gui を使用すると MacVim では常に最前面で Vim が動作してゐる。
GUI が開始されるときには、fork() して現在のプロセスを終了する。gvim がシェルから開始されたときには、これでシェルが更にコマンドを受け入れられるやうになる。これを望まない (例へば、メールプログラムで gvim を使用してゐるときに gvim が終了するのを待つ) ならば、"gvim -f", "vim -gf" でかあるいは ":gui -f" を使用して開始する。"-fg" は前景色の指定に用ゐられるので、"vim -fg" を使用してはならない。
"vim -f" と ":gui" を使用するときには、Vim はフォアグラウンドで實行されるだらう。"-f" 引數は記憶されてゐるだらう。Vim を强制的にバックグラウンドで實行するには、":gui -b" を使用するとよい。
MacVim は Vim を起動してゐる時にのみ、フォークをサポートしてゐる。"mvim" と "mvim -f" は期待通りに動作する:"mvim" は gui を起動してフォークし、"mvim -f" は gui を起動するけれども、フォークはしない (|mvim| を參照)。しかしながら、MacVim では、すでに動作してゐる vim で |:gui| を使ふと、決してフォークしないだらう。
"gvim –nofork" と "gvim -f" は同じである。
GUI の初期化に失敗した場合、Vim は現在の端末で實行を繼續しようとする。
GUI をいつもフォアグラウンドで實行したければ、’guioptions’ の中に ’f’ フラグを含めるとよい |-f|。MacVim は ’guioptions’ の中でこのフラグをサポートしてゐない。
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 のみ)。 |
イタリック、ボールド、イタリック・ボールドのテキスト用の特別なフォントはユーザーがリソースを通して指定されたものを持つてゐる場合にだけ用ゐられるだらう。通常のテキストのフォントに基づいたこれらのためにどのフォントが用ゐられるべきであるかを推測しようとは試みない。
Note:
"Normal", "Menu", "Tooltip" と "Scrollbar" グループを使用して、":highlight
" コマンドで色を設定することもできることを覺えておくとよい。:highlight Menu guibg=lightblue :highlight Tooltip guibg=yellow :highlight Scrollbar guibg=lightblue guifg=blue :highlight Normal guibg=grey90
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 への引數で設定することもできる:
引數 | 意味 |
---|---|
-display {display} | {display} 上で vim を實行する |
-iconic | vim をアイコン化して開始する |
-background {color} | 背景に {color} を使用する |
-bg {color} | 同上 |
-foreground {color} | 通常のテキストに {color} を使用する |
-fg {color} | 同上 |
-ul {color} | 同上 |
-font {font} | 通常のテキストに {font} を使用する |
-fn {font} | 同上 |
-boldfont {font} | 太字テキストに {font} を使用する |
-italicfont {font} | 斜體のテキストに {font} を使用する |
-menufont {font} | メニュー項目に {font} を使用する |
-menufontset {fontset} | メニュー項目に {fontset} を使用する |
-mf {font} | 同上 |
-geometry {geom} | 初期サイズに {geom} を使用する |
-geom {geom} | 同上。|-geometry-example| を參照 |
-borderwidth {width} | {width} のボーダ幅を使用する |
-bw {width} | 同上 |
-scrollbarwidth {width} | {width} のスクロールバー幅を使用する |
-sw {width} | 同上 |
-menuheight {height} | {height} のメニューバー高を使用する |
-mh {height} | 同上
|
-reverse | reverse video を使用する |
-rv | 同上 |
+reverse | reverse video を使用しない |
+rv | 同上 |
-xrm {resource} | 指定されたリソースを設定する |
Note:
reverse video についての注意: Vim は實際に暗い背景に明るいテキストになるか結果をチェックする。X11 のあるバージョンは色を交換し、あるバージョンはしないからである。これらの 2 つの例はどちらも靑い背景に黃色のテキストを提供するだらう:gvim -fg Yellow -bg Blue -reverse gvim -bg Yellow -fg Blue -reverse
geometry 引數の例:
gvim -geometry 80x63+8+100
これはウィンドウを 80 カラム、63 行で作り、左から 8 ピクセル、上から 100 ピクセルの位置に置く。
警告:
GUI からの外部コマンドの實行は常に動作するとは限らないだらう。"ls", "grep" とか "make" のやうな "normal" コマンドはたいていふまく動作する。"less" とか "ispell" のやうな知的ターミナルを要求するコマンドは動作しないだらう。あるものはハングさえするかもしれないし、他のターミナルから kill される必要があるかもしれない。だから氣をつけなくてはならない!
シェルコマンドで入出力するには 2 つの方法がある: パイプと假想端末 (pseudo-tty) である。デフォルトは假想端末を使用する。これは大抵のシステムで最も良く動作するだらう。
不幸にも、假想端末の實裝は Unix システム每に異なつてゐる。そしていくつかのシステムは root 權限を要求する。一番豫期しないときに假想端末における問題に出くはすのを避けるには、ファイルを編輯してゐないときにそれをテストをするとよい。開始したコマンドあるいは Vim を "kill" する準備をしなくてはならない。":r !cat" のやうなコマンドはハングするかもしれない!
假想端末を使用して動作しないならば、’guipty’ オプションをリセットするとよい:
:set noguipty
パイプの使用はいくつかの Unix システムで動作するだらうが、いくつか不都合がある:
:sh
" コマンドは、多少動作するだらうが、プロンプトを表示しないだらう。
:make
" を使用するときには、CTRL-C で中斷できない。
外部コマンドを實行してゐる閒、先行入力された文字はしばしば失はれる。これはパイプと假想端末の兩方で起こる。これは既知の問題だが、修正できない (かあるいは少なくとも非常に難しい) と思はれる。
削除文字が外部コマンドに不適當であるときには、あなたの "~/.cshrc" ファイル、あるいはあなたのシェルを初期化するために用ゐるどんなファイルででもこれを修正すべきである。例へば、文字を削除するためにバックスペースを使用したいが、バックスペースを打ち込むことで代はりに "^H" が作り出されるときには、これをあなたの "~/.cshrc" に追加してみるとよい:
stty erase ^H
^H は本當の CTRL-H であり、CTRL-V CTRL-H とタイプする。
"File/Print" {譯注: 日本語化されたメニューでは、ファイル/印刷} メニューは單に現在のバッファを "lpr" に送る。オプションや何かは何もない。他に何かしたければ、あなた自身の印刷コマンドを定義することができる。例へば:
:10amenu File.Print :w !lpr -Php3 :10vmenu File.Print :w !lpr -Php3
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
|'mouseshape'| オプションを使ふと、Vim がモード (插入モードやコマンドモードなど) を變更するたびに自動的にマウスポインタを變更できる。現在、利用できるポインタは次の通り:
arrow | 左上向きの矢印 |
beam | 「I」のやうな垂直の棒 |
size | 上下を指す矢印 |
busy | 腕時計 |
blank | 透明なポインタ |
crosshair | 細い "+" 印 |
hand1 | 左上向きの暗い手のポインタ |
hand2 | 左右向きの明るい手のポインタ |
pencil | 右下向きのペン型のポインタ |
question | クエスチョンマーク (?) |
right_arrow | 右上向きの矢印 |
up_arrow | 上向きの矢印 |
さらに、インクルードファイルの X11/cursorfont.h で定義された整數を指定して、X11 に組み込まれたポインタを使ふことができる。
他のシステムでは使へても、X11 にない名前を指定すると、デフォルトの "arrow" ポインタが使はれる。
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 ドキュメントを參照しなければならないだらう。
ツールチップの色を明るい黃色の背景に黑のテキストに設定する例:
style "tooltips" { bg[NORMAL] = "#ffffcc" fg[NORMAL] = "#000000" } widget "gtk-tooltips*" style "tooltips"
~/.gtkrc ファイルの中にこれを書くと GTK で用ゐられるだらう。GTK+ 2 では ~/.gtkrc-2.0 を使はなければいけないかも知れない。環境による。
GTK+ 3 でも、以下の CSS コードのスニペットを $XDG_HOME_DIR/gtk-3.0/gtk.css (次のセクションを參照) に追加する事で上記と同樣の效果が得られる。
GTK+ 3 < 3.20 向け:
.tooltip { background-color: #ffffcc; color: #000000; }
GTK+ 3 >= 3.20 向け:
tooltip { background-color: #ffffcc; text-shadow: none; } tooltip label { color: #2e3436; }
この節の內容は、GTK+ CSS をしつかりとサポートしてゐる GTK+ 3.20 以降に適用される:
https://developer.gnome.org/gtk3/stable/theming.html
GTK+ は CSS をウィジェットのレイアウトとスタイルに使用する。この節では、シンプルで說明的な例を通して、GTK+ CSS について簡潔に見てゐく。
通常、次のやうにして設定を記述することができる:
vim $HOME/.config/gtk-3.0/gtk.css
デフォルトでは、GTK+ 3 GUI のツールバーとタブ行は、GTK+ 2 GUI のものよりも、いくらか長い。GTK+ 2 GUI でのサイズと同じやうに見えるやうにしたいと思ふひとがゐるに違ひない。
そのために、どうやら餘分らしいアイコンやラベル回りの空白を減らしてみよう。
$XDG_HOME_DIR/gtk-3.0/gtk.css (たいていは $HOME/.config/gtk-3.0/gtk.css) に以下の行を追加する:
toolbar button { margin-top: -2px; margin-right: 0px; margin-bottom: -2px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px } notebook tab { margin-top: -1px; margin-right: 3px; margin-bottom: -1px; margin-left: 3px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px }
これは CSS なので、簡略表記を使つて次のやうに書き換へることができる:
toolbar button { margin: -2px 0px; padding: 0px; } notebook tab { margin: -1px 3px; padding: 0px }
Note:
’toolbariconsize’ を使つてアイコンのサイズも調節したいに違ひない。
Note:
アイコンのテーマと、もしくは使用中のフォントに應じて、滿足する結果のためには、いくつかの特別な微調整が必要かもしれない。
Note:
マージンとパディングに加へて、ボーダーを使ふこともできる。詳細については、CSS のボックスモデルを參照のこと。例へば
GTK+ CSS はグラディエントもサポートしてゐる:
tooltip { background-image: -gtk-gradient(linear, 0 0, 0 1, color-stop(0, #344752), color-stop(0.5, #546772), color-stop(1, #243742)); } tooltip label { color: #f3f3f3; }
グラディエントは他の高いコンストラストに賴らずに、視覺的に區別可能な GUI 要素を作るのに使ふことができる。したがつて、これらを有效に使ふことは、テーマに色と高度の統一性あるセンスを與へるのに有用なテクニックになる。
Note:
テーマを作るといふことは、すべてのアプリケーションの見た目を同じやうに良いものにしなければならないので困難である。單一のアプリケーションをより魅力的なものにすることは、しばしば、他人の豫想外な不評を受けたり、有用性を低下させたりもする。テーマを改良しようとするなら、常にこれを心しておけ。
最大化した時に境界を無くすには:
@define-color bg_color #1B2B34; #vim-main-window { background-color: @bg_color; }
GTK+ 版の Vim を普通に起動すると、Vim は自身のトップレベルウィンドウを作成する (技術的には ’GtkWindow’)。GTK+ は GtkSocket, GtkPlug ウィジェットを使つた埋め込み機能を提供してゐる。ある GTK+ アプリケーションが自分のウィンドウに GtkSocket ウィジェットを作成してゐると、別のアプリケーションはトップレベルの GtkPlug ウィジェットをソケット ID を使つて作成し、先のアプリケーションに自身を組み込める。
Vim のコマンドラインオプションに ’–socketid’ と 10 進數や 16 進數の値を指定すると、Vim は通常の GtkWindow を使はず、指定された値を使ひ GtkPlug ウィジェットを作成する。これは Vim が GTK+ プラグインとして振る舞ふことを可能にする。
これはプログラマ向けのインターフェイスであり、それをサポートするアプリケーション無しではまつたく役に立たない。GTK+ ソケットについての詳細は次の URL を參考にすること。
Note:
この機能は最新バージョンの GTK を必要とする。GTK 1.2.10 はまだ若干問題がある。ソケットの機能はまだ GTK+ 2 ではテストされてゐない、自己責任でどうぞ。
GNOME GUI は GTK+ バージョンと同じやうに機能する。どのやうに動作するかは上述の |GTK+| を參照。しかし若干の違ひがあり、素の GTK+ GUI では利用できない重要な機能が 1 つ實裝されてゐる。それはセッションマネージャーとの相互作用である。|gui-gnome-session|
見た目の違ひ:
GNOME バージョンは configure が GNOME を認識し、引數 ‘--enable-gnome-check’ が指定されてゐればコンパイルされる。
Note:
GTK+ 3 GUI ビルドで ‘--enable-gnome-check’ を使用しない。上記で述べた機能は GTK+ 3で統合されてゐる。
ログアウト時、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| を使ふ)。
KDE バージョンの Vim は存在しない。Qt ツールキットを使つて移植する作業が行はれてゐたが、ちやんと動かなかつたので、今は抛棄されてゐる。作業は Yzis で繼續されてゐる: https://github.com/chrizel/Yzis
X11 を使用してゐるならば、Vim の configure はデフォルトでは最初にシステム上の必要となる GTK+ ファイルを見つけようとするだらう。GTK+ 2 と GTK+ 3 の兩方のファイルがシステムで見つかつた場合は、configure に明示的に ‘--enable-gui=gtk3’ が指定されてゐない限り GTK+ 2 が使はれる。
GTK+ のファイルが見つからなかつた場合は、Motif ファイルが檢索されるだらう。最終的に、これが失敗するならば、Athena ファイルが檢索されるだらう。3 つとも全て失敗するならば、GUI は無效になるだらう。
GTK+ については、Vim のコンフィギュレーションプロセスは必要な GTK+ が適切にインストールされ、使用可能であるかをチェックする爲に pkg-config(1) が使はれる。したがつて configure を實行する前に必要とされる GTK+ の .pc ファイルで pkg-config がシステムで動作する事を確認するのは良い事である。例へば GTK+ 2 の pkg-config であれば以下のコマンドラインを實行する:
$ pkg-config --modversion gtk+-2.0
GTK+ 3 であれば gtk+-2.0 を gtk+-3.0 で置換しなさい。もし GTK+ のバージョン番號が正しいのであれば、實行できるはずだ: もしできないのならば、おそらくシステム管理者に正しい pkg-config と GTK+ にセットアップして貰ふ必要がある。
GTK+ 2 GUI がデフォルトでビルドされる。したがつて通常 ‘--enable-gui=gtk2’ の樣なオプションを configure に渡してビルドする必要はない。
補足として GTK+ 2 GUI は GNOME 2 のサポートと統合可能である。これは configure に ‘--enable-gnome-check’ を渡す事で有效になる。
もし GTK+ 3 GUI でビルドしたいならば、‘--enable-gui=gtk3’ を明示的に configure に渡す必要がある。GTK+ 3 では既にサポート濟みの GNOME 2 サポートを有效にするのに ‘--enable-gnome-check’ を渡す事を避けるべきである。
さうではなくて、Motif あるいは Athena を使用してゐるならば、configure が見に行かなゐないディレクトリに Motif あるいは Athena ファイルがあるときには、ディレクトリ名を記入するために Makefile を編輯しなくてはならない。Motif のディレクトリを設定する例については "GUI_INC_LOC"、Athena については "CONF_OPT_X" を檢索するとよい。
現在、Vim は GTK+ 2 と GTK+ 3 の兩方をサポートしてゐる。
GTK+ 2 GUI を使ふときは GTK+ 2.2 シリーズ以降の最新版を使ふことが要求される。
GTK+ 3 GUI は 3.x シリーズのすべてのバージョンに對してコンパイルすることができるやうなソースコードとして書かれてゐるけれども、GTK+ 3.10 以降を使ふことを推奬する。なぜなら、再描畫その實際の實裝がこのバージョンになつてゐるからだ。
Motif については、少なくとも Motif バージョン 1.2 と、あるいは X11R5 が必要である。Motif 2.0 と X11R6 は OK である。Motif 1.1 と X11R4 は動作するかもしれないが保證しない (多少の問題があるかもしれないが、少しの作業でそれをコンパイルし實行させられるかもしれない、もしあなたがさうするなら、どうか私にパッチを送つて欲しい)。LessTif の最新リリースも問題なく動作すると報告を受けてゐる。
Athena バージョンはデフォルトで Xaw ウィジェットセットを用ゐる。3D バージョンを持つてゐるならば、代はりに Xaw3d でリンクしたいかもしれない。これはメニューを少しよく見せるかもしれない。Makefile を編輯して、"XAW_LIB" を見に行くやうにするとよい。スクロールバーは、Vim は既に 3D のそれ自體を持つてゐるので (實際には、それらはもつと Motif のやうに見える)、同じままだらう。
neXtaw バージョンについては、異なるウィジェットを使ふだけでほとんど Athena と變はらない。
一般的には、異なつた GTK+, Motif, Athena と X11 のバージョンからのファイルを混ぜようとしてはならない。これは問題を引き起こすだらう。例へば、X11R6 用のライブラリで X11R5 用のヘッダーファイルを使用しても動作しないだらう (リンクがエラーメッセージを出さないとしても、Vim は後でクラッシュするだらう)。
X11 を使つてゐる場合、GUI や xterm で Vim が X11 を認識してゐる狀態のとき、Vim から X11 のセレクションやクリップボードを扱へる。それらは "* レジスタと "+ レジスタを使用して取り扱ふ。
X11 は 2 つの基本的な共通記憶域、セレクションとカットバッファを提供してゐる。これらは重要な點が異なつてゐる。セレクションはアプリケーションが所有し、Vim などのアプリケーションが終了するとなくなる、すなはちデータは失はれる。一方、カットバッファは、X サーバーが記憶し、上書きされるか、ログアウトするなどして X サーバーが終了するまで保存される。
セレクションの內容はそのアプリケーションによつて保存され (コピー)、別のアプリケーションがそれを求めたときに渡される (ペースト)。
カットバッファの內容はすぐに上書きされ、その元のアプリケーションを介さずに、X サーバーから直接讀み込まれる。
文書化された 3 つの X セレクションがある。プライマリ (Vim のビジュアルモードでの選擇のやうな、現在の選擇範圍を表す)、セカンダリ (不明瞭である)、クリップボード (カット、コピー、ペーストに使はれる)。
この 3 つの內、Vim は "* レジスタを讀み書きするときにはプライマリを使ふ (X11 セレクションが利用可能なとき、Vim は |'clipboard'| にデフォルトとして "autoselect" を設定する)。"+ レジスタを讀み書きするときにはクリップボードを使ふ。Vim はセカンダリを使はない。
例: (オプションが標準設定のとき)
Note:
Firefox では、about:config を開き、middlemouse.contentLoadURL を true にすれば、ウィンドウ內をミドルクリックすることで、この URL を開くことができる。
Note:
"+ レジスタのテキストはビジュアル選擇しただけで變更されない。"* レジスタは變更される。つまり選擇したテキストを上書きできる。
既定では 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 はクリップボードを使はないので"+ レジスタは使へない。
最近のほとんどのアプリケーションでは範圍選擇でプライマリ ("*) を、カット、コピー、ペーストの操作でクリップボード ("+) を使用するやうになつてゐる。そのため "* レジスタか "+ レジスタを選擇して使用することができる。