Up: 目次   [Index]


Win32 GUI

*gui_w32.txt*   For Vim バージョン 8.1.  Last change: 2019 May 05


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

Win32 での Vim のグラフィカルユーザーインターフェイス

1. GUI を始める|gui-w32-start|
2. デフォルトエディタ Vim|vim-default-editor|
3. クリップボードを使ふ|gui-clipboard|
4. シェルコマンド|gui-shell-win32|
5. 特別な色|win32-colors|
6. ダイアログとブラウズ|gui-w32-dialogs|
7. コマンドライン引數|gui-w32-cmdargs|
8. その他色々|gui-w32-various|

その他の關聯した文章:

|gui.txt|GUI の一般的な要素。
|os_win32.txt|Win32 特有の要素。

1. GUI を始める

Win32 の GUI バージョンは、どんな名前で起動されたかなんておかまひ無しに、いつも GUI でスタートする。

GUI は常に Windows のサブシステムとして實行される。ほとんどのシェルは Vim を起動した直後にコマンドプロンプトへ自動的に復歸する。さうでなかつたら、"start" コマンドを使ふと良い:

start gvim [options] file ..

コンソールバージョンに |-g| オプションを付けても gvim.exe が實行されて GUI をスタートできる。

vim -g [options] file ..

この機能を動作させるには、gvim.exe が vim.exe と同一のディレクトリに存在し、かつこの機能を有效にしてコンパイルされてゐなければならない。

コンソールバージョンから ‘:gui‘ を使ふこともできる。しかし、これは實驗的な機能で、かつこの機能を有效にしてコンパイルされてゐなければならない。セッションファイルを使つて現在のコンソール Vim の狀態が GUI Vim で再生成される。

Note:
全てのフォント (太字、斜體) は同じ大きさでなければならない!!!さうしない場合、文字が缺けたり表示がゴチャゴチャになつたりしてしまふだらう。Vim はフォントの大きさを檢査してゐない。畫面上でのピクセルサイズが同じでなければならない。

Note:
同じポイントサイズのフォントでも、同じピクセルサイズのフォントだとは限らないことに注意!加へてフォントの位置情報 (アセントとディセント) も同じでなければならない。

Win32 GUI ではメニューが擴張されてゐる: "編輯/フォント設定"。Windows の標準フォントセレクトダイアログが起動される。

メニューの高さ設定は、Win32 GUI では動作しない。

Vim のウィンドウを最大化した狀態で起動したいのならば、vimrcgvimrc に次のコマンドを書き加へる:

au GUIEnter * simalt ~x

Vim をプラグインとして使ふ

普通に gvim が起動されると、gvim のウィンドウがトップレベルで作成される。コマンドラインオプション |--windowid| に 10 進または 16 進の數値を指定すると、Vim はその ID を持つウィンドウの子ウィンドウを作成する。これによつて、Vim を他のアプリケーションのプラグインとして使ふことができる。これは完全にプログラマ向けのインターフェイスであり、Vim を正しく起動するアプリケーションの對應なくしては何の役にも立たない。

2. デフォルトエディタ Vim

Vim をあるファイルタイプのデフォルトエディタにするには:

  1. Windows のエクスプローラーを起動する
  2. ツール/フォルダオプション -> ファイルタイプ (W2K + IE5.5)
  3. Vim を使用したい全てのファイルタイプに對して、gvim のパスを設定する。(擴張子の無いファイルタイプに對しては、ファイルタイプを指定するフィールドに 3 つのスペースを置くことで對應できる) アクションの "open" に:
    gvim "%1"
    

    ファイル名にスペースを含むファイルを正しく扱ふためにクォート (") が必要。かういふ方法もある:

    gvim "%L"
    

    これにより幾つかの狀況で、短い形式のファイル名 (8.3 形式) を避けることができる。しかし、常に働くわけではない。

ファイルをダブルクリックして Vim で開いた時には、Vim はそのファイルのディレクトリへ移動する。

Vim を全畫面で起動したい時には、open のアクションとして次のものを使用する:

gvim -c "simalt ~x" "%1"

新たに Vim を違ふディレクトリに置いた時 (新しいバージョンを入手した時など) の、も う 1 つの方法は:

  1. Vim を使つて開きたいファイルを選ぶ
  2. <Shift-F10> を押す
  3. メニューから "アプリケーションから開く" を選擇する
  4. "その他" をクリック
  5. Vim の新しい位置を參照して、開くをクリックする。
  6. "いつもこのアプリケーションを使ふ" をチェックする
  7. OK をクリック

Vim を "送る" メニューに追加することもできる:

  1. Windows のエクスプローラーを起動する。
  2. "送る" のためのディレクトリに移動する:
    Windows NT: %windir%\profiles\%user%\sendto (e.g. "c:\winnt\profiles\mattha\sendto")
    Windows XP: C:\Documents and Settings\%user%\SendTo
    Windows Vista: C:\Users\%user%\AppData\Roaming\Microsoft\Windows\SendTo .
    
  3. ファイル表示枠の上で右クリックして新規作成 → ショートカット。
  4. ショートカットウィザードに從つて VIM/GVIM へのフルパスを指定。

Vim にファイルを送ると、Vim はファイルのあるディレクトリに移動する。しかし長いディレクトリ名は短い (MS-DOS 形式) で表示されてしまふことに注意。これは Windows の "送る" の仕組みによる制限である。

notepad.exe (メモ帳) を gvim.exe に置き換へてしまふこともできるが、これには副作用もある。いくつかのプログラムは notepad.exe に依存してゐて、例へばファイルを印刷するために "notepad -p" を使つてゐるからである。メモ帳 (notepad) はそのままにしておいて、Vim を起動するためのほかの方法を使つたはうが良い。

もつと拔本的なアプローチは、右マウスボタンメニューに "Edit with Vim" といふ項目を追加するものである。これを使ふとあらゆるファイルを Vim で編輯できるやうになる。

これは上述のファイルの關聯付けと共存することができる。ファイルの關聯付けは、Vim で開始することを「デフォルトのアクション」にしてしまふ點が違ふ。"Edit with Vim" メニュー項目を使ふと、ダブルクリックで開ける既に存在するファイルの關聯付けはそのままにして、したい時にはいつでも Vim でファイルを編輯することができる。

例へば、"*.mak" は make プログラムに關聯付けることができる。この場合、そのファイルをダブルクリックすれば makefile が實行されるし、"Edit with Vim" を選べば makefile を編輯することができる。

どんなファイルでも選擇し、右クリックで "Edit with gvim" と呼ばれるメニューオプションを表示させることができる。このメニューオプションを選擇すると、選擇したファイルが gvim によつて開かれる。複數のファイルを選擇した場合には、2 つのメニューオプションが提示されるだらう:

"Edit with multiple gvims"  -- 1 つのファイルにつき 1 つの gvim が起動される
"Edit with single gvim"     -- 選んだ全てのファイルが 1 つの gvim で開かれる

さらに、もしもすでに gvim が起動してゐるなら:

"Edit with existing gvim    -- すでに起動してゐる gvim でそのファイルの編輯を開始する。

"edit with existing Vim" メニューはレジストリを設定することで無效化できる。HKLM\Software\Vim\Gvim に DisableEditWithExisting といふ名前のエントリを追加すればよい。値は何でもよい。 "install.exe" プログラムを使用すれば、簡單に "Edit with Vim" メニュー項目を追加することができる。これはレジストリに幾つかの項目を書き加へる。

同じことを手動で行ふこともできる。これは非常に複雜である!できれば install.exe を使ふことをオススメする。

  1. "regedit" でレジストリエディタを起動する。
  2. 次のキーを追加する:
    キー                                                                                    キーの名前                              値
    HKEY_CLASSES_ROOT\CLSID\{51EEE242-AD87-11d3-9C1E-0090278BBD99}                          {default}                               Vim Shell Extension
    HKEY_CLASSES_ROOT\CLSID\{51EEE242-AD87-11d3-9C1E-0090278BBD99}\InProcServer32           {default}                               {path}\gvimext.dll
                                                                                            ThreadingModel                          Apartment
    HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\gvim                                    {default}                               {51EEE242-AD87-11d3-9C1E-0090278BBD99}
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved  {51EEE242-AD87-11d3-9C1E-0090278BBD99}  Vim Shell Extension
    HKEY_LOCAL_MACHINE\Software\Vim\Gvim                                                    path                                    {path}\gvim.exe
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\vim 5.6          DisplayName                             Vim 5.6: Edit with Vim popup menu entry
                                                                                            UninstallString                         {path}\uninstal.exe
    

    {path} は實行可能ファイルのあるディレクトリパスに置き換へる。

    {default} はキー自身の値なので、タイプしない。

ポップアップメニューから "Edit with Vim" を削除するには、上記のレジストリ項目を削除すればよい。uninstall.exe プログラムは同じことをしてくれる。Windows 標準の "アプリケーションの追加と削除" のリストの、エントリを使ふこともできる。

このエントリがファイルタイプの關聯付けを抑制してしまふことに氣がついたら、手動で關聯付けをやり直す (上記を參考に、Windows のエクスプローラーを使つて)。これは Windows NT の幾つかのバージョンでだけ起こるらしい (Windows のバグ?) 。手續き:

  1. ファイルタイプの名前を見つける。これはレジストリエディタを起動し、\\HKEY_CLASSES_ROOT で擴張子を探すことで行へる。
  2. Windows エクスプローラーでは、表示 → オプション → ファイルタイプ。リストの中からファイルタイプを探し出し "編輯" をクリック。アクションのリストで、デフォルトとして使用したいものを選擇し (通常は "開く" アクション)、"標準" ボタンをクリックする。

"アプリケーションから開く" ("Open With...") コンテキストメニュー

Vim のインストーラを使ふならエクスプローラーのメニューの "アプリケーションから開く" に Vim を加へるか選擇することができる。これは Vim でいろんなファイルを編輯するなら重要である。(不明瞭な理由で) 全てのファイルには使へない。したがつて "Edit with Vim" メニューの方が使ひやすい。

これを追加する理由の 1 つがインターネットエクスプローラーから直接ファイルを編輯できるやうにするためである。これを有效にするには "Tools" メニューから "Internet Options..." を選擇し、出てきたダイアログウィンドウの "Programs" タブの "HTML editor" に Vim を選擇する。そこに Vim がなければインストールは完了してゐない。

このスクリプトを使つて手作業で設定できる。

REGEDIT4

[HKEY_CLASSES_ROOT\Applications\gvim.exe]

[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell]

[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit]

[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command]
@="c:\\vim\\vim62\\gvim.exe \"%1\""

[HKEY_CLASSES_ROOT\.htm\OpenWithList\gvim.exe]

[HKEY_CLASSES_ROOT\*\OpenWithList\gvim.exe]

"c:\\vim\\vim62" を gvim.exe が實際にある場所に變更すること。

これをアンインストールするには Vim のアンインストーラを使ふか "regedit" を使つて手作業でレジストリエントリを削除する。

3. クリップボードを使ふ

Windows にはテキストを一時的に格納 (コピー) し、取り出す (ペースト) できるクリップボードがある。Vim では幾つかの方法でクリップボードに對應してゐる。他のシステムについては |gui-selections| を參照。

"* レジスタにはクリップボードの內容が反映される。|quotestar|

clipboard’ オプションに文字列 "unnamed" が含まれてゐる時には、名前なしレジスタが同じになる。かうすることで、ヤンク (Vim におけるコピー "y") やペースト (Vim における貼り付け "p") にクリップボードを、"* を付けることなく使用できる。

デフォルトでは ’guioptions’ に ’a’ フラグは含まれてゐない。これはその操作を行つた時にだけ、テキストがクリップボードへ送られることを意味してゐる。單に視覺的に選擇 (Visual モード) しただけではクリップボードには送られない。’a’ フラグを加へれば、(Visual モードで選擇するだけで) 操作をせずにもクリップボードへ送られる。

標準的な MS-Windows の CTRL-X, CTRL-C および CTRL-V を使ふには、$VIMRUNTIME/mswin.vim スクリプトを使用する。_vimrc ファイルに次の 1 行を追加する:

source $VIMRUNTIME/mswin.vim

CTRL-C がクリップボードへのコピーになつてしまふので、操作を停止すること (無限ループに陷つたスクリプトを停止するなど) が、できなくなつてしまふ。代はりに CTRL-Break が使へる。

CTRL-Z がアンドゥになる。そのため、このキーで Vim をサスペンドすることはできない。代はりに |:suspend| を使ふこと (これがサポートされてゐればだが)。

CTRL-V がペーストに使はれてしまふので、矩形ビジュアル選擇を開始することができない。これには CTRL-Q を代用できる。插入モードやコマンドラインモードにおいても、もともとの CTRL-V の代はりに CTRL-Q を使用することができる。しかしターミナルで CTRL-Q が制禦のために使はれる時はうまく機能しない。

Note:
クリップボードのサポートにはまだかなりのバグがある。|todo| 參照。

4. シェルコマンド

Vim は外部コマンドを實行するのに、どんなコマンドでも實行できるやうにするために Vim とは別個のウィンドウを使用する。外部コマンドはちやうど DOS プロンプトから實行されるやうに、獨自の實行環境を獲得する。

外部コマンドの實行は "vimrun" コマンドを用ゐて閒接的に行はれる。これが働くためには "vimrun.exe" コマンドが實行パスになければならない。さうでなければ Vim の實行ファイルと同じディレクトリになければならない。"vimrun" を見つけることができなければ、コマンドは直接實行され、そのため外部コマンドの實行が終了するとすぐに DOS ウィンドウが閉ぢられる。

警告:
もしも "X" ボタンでこのウィンドウを閉ぢてしまひ、强制終了することを確認するウィンドウでアプリケーションを本當に終了してしまふと、Vim も一緖に强制終了してしまふ!(":!start" で非同期的に起動されたアプリケーションには、これは當てはまらない)

コントロールパネルの "コンソール" によつて設定された內容がデフォルトで使用される。

通常、Vim はコマンドの實行が終了するのを待つ(これは多くのシェルコマンドの出力を Vim が取り込んで使用できるやうにするため)。Vim がプログラムを實行した後、その終了を待たないやうに望むのならば、次の構文を使用することができる:

:!start [/min] {command}

"/min" 引數を指定すると、ウィンドウは最小化される。

5. 特別な色

Win32 では、通常の DOS での色が使用される。|dos-colors| を參照。

付け加へて、システムが構成してゐる色を使用することができる。それらは Sys_XXX として知られ、XXX の部分は下のリストに示される、割り當てられてゐるシステムカラー名である (完全な解說は Win32 の文章を參照)。大文字小文字は區別されない。

Sys_3DDKShadow          Sys_3DFace                      Sys_BTNFace
Sys_3DHilight           Sys_3DHighlight                 Sys_BTNHilight
Sys_BTNHighlight        Sys_3DLight                     Sys_3DShadow
Sys_BTNShadow           Sys_ActiveBorder                Sys_ActiveCaption
Sys_AppWorkspace        Sys_Background                  Sys_Desktop
Sys_BTNText             Sys_CaptionText                 Sys_GrayText
Sys_Highlight           Sys_HighlightText               Sys_InactiveBorder
Sys_InactiveCaption     Sys_InactiveCaptionText         Sys_InfoBK
Sys_InfoText            Sys_Menu                        Sys_MenuText
Sys_ScrollBar           Sys_Window                      Sys_WindowFrame
Sys_WindowText

恐らく一番便利な値はこれらだらう

Sys_Window          通常のウィンドウの背景の色
Sys_WindowText      通常のウィンドウの文字の色
Sys_Highlight       選擇されたテキストの背景の色
Sys_HighlightText   選擇されたテキストの文字の色

他にもこの樣な色も存在する:

Gray, Grey, LightYellow, SeaGreen, Orange, Purple, SlateBlue, Violet

付け加へて、"rgb.txt" で定義される色も使ふことができる。このファイルは X11 のものとして知られてゐる。何行かを拔萃する:

255 218 185              peach puff
205 133  63              peru
255 181 197              pink

これはファイルのレイアウトを示してゐる: 最初に赤、綠、そして靑の輝度を 10 進數で記述し、續いて色の名前を定義してゐる。4 つのフィールドはスペースで區切られてゐる。

rgb.txt は X11 のディストリビューションから手に入れることができる。"/usr/X11R6/lib/X11/" あたりのディレクトリにおいてあることが多い。Vim では $VIMRUNTIME ディレクトリに置く。だから "$VIMRUNTIME/rgb.txt" にファイルが見つけることができる。

6. ダイアログとブラウズ

コンソールバージョンから受け繼がれる傳統的なインターフェイスはもちろん、さらに Win32 GUI では幾つかの操作に見慣れた Windows のコンポーネントを使用することができる。

6.1 ダイアログ

その他のバージョンではコンソールベースで行はれてゐた "confirm" ファミリ (すなはち ’confirm’ オプションと |:confirm| コマンドと |confirm()| 函數) で、GUI ベースのダイアログが表示される。’guioptions’ の ’c’ フラグでこれを變更できる。

6.2 ファイルブラウザー

ファイルを編輯するコマンドの前に ":browse" を付けると、存在するファイルを選擇するためのウィンドウ選擇ダイアログが使用される。|:browse| を參照。

6.3 切取メニュー

Win32 GUI 版では Motif の「切取メニュー」をエミュレートする。個々のメニューの最上位には、小さな「切り取り線」のグラフィックスが存在する。これを選擇すると同じメニューのエントリがある、フローティングウィンドウが作成される。フローティングメニューを使用すれば、いちいちメニューバーに移動することなく、オリジナルのメニューの (サブメニューも含めた) 項目にアクセスすることができる。

これはサブメニューの奧の方のコマンドを頻繁に使用するときに非常に便利。

切取メニューは好きなところに配置し、常に Vim のメインウィンドウよりも手前に表示される。普通に閉ぢることで取り除くこともできる; もちろん Vim を終了すれば自動的にそれらも閉ぢられる。

:te[aroff] {name}

{name} といふメニューを切り取る。指定されたメニューは少なくとも 1 つ以上のサブエントリを持たねばないが、メニューバーに表示されてゐる必要は無い。(|win32-hidden-menus| を參照)。

例:

:tearoff ファイル(F)

"ファイル" メニューが(あれば)切取メニューとして表示される。

:amenu ]Toolbar.Make    :make<CR>
:tearoff ]Toolbar

メインのメニューバーには存在しないフローティングメニューを作成する。

Note:
’]’ で始まるメニューは表示されないことに注意。

7. コマンドライン引數

コマンドライン引數はコンソール版と同じ擧動となる。|win32-cmdargs| を參照。

8. その他色々

"ファイル/印刷" メニューはシンタックスハイライトを使つて印刷する。|:hardcopy| を參照すること。もしもテキストを裝飾なしで印刷したいのなら、デフォルトのプリンタがインストールされてゐれば次のやうにできるだらう。

:w >>prn

Vim では多くの MS Windows 標準の機能をサポートしてゐる。それらの幾つかは別の場所で說明されてゐる: |'mouse'|, |win32-hidden-menus| を參照。

Vim のウィンドウに1つもしくは複數のファイルをドラッグ&ドロップすることができ、それらは普通に開かれる。|drag-n-drop| を參照。

:sim[alt] {key}

Alt と {key} の同時押しをシミュレートする。

{Win32 バージョンだけの機能}

Note:
":si" は "i" フラグ付きの ":s" になる。

通常、Vim では使用可能なマッピングを增やすために、Alt-<Key> の全ての組み合はせを使ふことができる。これはメニューにアクセスするための Alt キーの標準的な使ひ方と衝突する。

標準的な振る舞ひをさせるための近道は、’winaltkeys’ オプションに "yes" を設定することである。しかしかうすると Alt を使用したマッピングは一切使へなくなる。

もう 1 つの方法は ’winaltkeys’ に "menu" を指定することである。マッピングされてゐない ALT キーだけが、メニューのショートカットとして Windows に解釋される。だが、現在の狀態に依存することは許さない。 これを囘避するために、(’winaltkeys’ が "yes" でない時に) :simalt コマンドで、Windows のスタイルで Alt キーを押すふりを、Vim にさせることができる。これを使つて Windows 標準のアクションを興すための、Alt キーの組み合はせ (ほかのものでも) をマッピングすることができる。いくつか例を示さう:

:map <M-f> :simalt f<CR>

これで Alt-F を押すとキーストロークの Alt→F がシミュレートされ、’ファイル(F)’ メニュー (Menu.vim で定義される) が表示される。

:map <M-Space> :simalt ~<CR>

このマッピングにより Alt-Space で Vim ウィンドウのシステムメニューが表示される。

Note:
’~’ は simalt において文字 <Space> を表現するのに使はれることに注意。

:map <C-n> :simalt ~n<CR>

Control-N に、Alt-Space に N を續けるマッピングを施す。これはシステムメニュー經由で Vim のウィンドウを最小化する。

Note:
これらのキーは使用してゐる言語によつて異なることがある。

インテリマウスのホイールを使用すると、Vim は入力を受け付けなくなることがある。次の場所へ行き:

コントロールパネル - マウス - ホイール - スクロール - 例外

アプリケーションのリストに gvim を追加する。この問題は Intellimouse のドライババージョン 2.2 を使用し、"ユニバーサルスクロール" を有效にしてゐる時にだけ起こる。

XPM サポート

Gvim は、MS-Windows で XPM ファイルのサポート付きでビルドすることができる。|+xpm_w32| 詳細は Make_mvc.mak ファイルを見て、XPM で檢索すること。

XPM サポートが動作するか試すには、以下を行ふこと:

:help
:exe 'sign define vimxpm icon=' . $VIMRUNTIME . '\\vim16x16.xpm'
:exe 'sign place 1 line=1 name=vimxpm file=' . expand('%:p')

Up: 目次   [Index]