1 *gui_w32.txt* For Vim バージョン 7.2. Last change: 2007 Aug 30
4 VIMリファレンスマニュアル by Bram Moolenaar
7 Win32でのVimのグラフィカルユーザインターフェース *gui-w32* *win32-gui*
9 1. GUIを始める |gui-w32-start|
10 2. デフォルトエディタVim |vim-default-editor|
11 3. クリップボードを使う |gui-clipboard|
12 4. シェルコマンド |gui-shell-win32|
13 5. 特別な色 |win32-colors|
14 6. ダイアログとブラウズ |gui-w32-dialogs|
15 7. コマンドライン引数 |gui-w32-cmdargs|
16 8. その他色々 |gui-w32-various|
20 |os_win32.txt| Win32特有の要素。
24 ==============================================================================
25 1. GUIを始める *gui-w32-start*
27 Win32のGUIバージョンは、どんな名前で起動されたかなんておかまい無しに、いつも
30 GUIは常にWindowsのサブシステムとして実行される。殆どのシェルはVimを起動した直
31 後にコマンドプロンプトへ自動的に復帰する。そうでなかったら、"start"コマンドを
33 start gvim [options] file ..
35 Note: 全てのフォント(太字、斜体)は同じ大きさでなければならない!!!。そうしない
36 場合、文字が欠けたり表示がゴチャゴチャになったりしてしまうだろう。Vimはフォン
37 トの大きさを検査していない。画面上でのピクセルサイズが同じでなければならない。
38 同じポイントサイズのフォントでも、同じピクセルサイズのフォントだとは限らないこ
39 とに注意!。加えてフォントの位置情報(アセントとディセント)も同じでなければなら
42 Win32 GUIではメニューが拡張されている: "編集/フォント設定"。ウィンドウズの標準
45 メニューの高さ設定は、Win32 GUIでは動作しない。
48 Vimのウィンドウを最大化した状態で起動したいのならば、vimrcかgvimrcに次のコマン
50 au GUIEnter * simalt ~x
53 Win32sかWindows 3.1もしくは3.11で動くgvim.exeも存在する。|win32s|参照。
56 Vim をプラグインとして使う *gui-w32-windowid*
58 普通に gvim が起動されると、gvim のウィンドウがトップレベルで作成される。コマ
59 ンドラインオプション |--windowid| に10進または16進の数値を指定すると、Vim はそ
60 の ID を持つウィンドウの子ウィンドウを作成する。これによって、Vim を他のアプリ
61 ケーションのプラグインとして使うことができる。これは完全にプログラマ向けのイン
62 ターフェイスであり、Vim を正しく起動するアプリケーションの対応なくしては何の役
65 ==============================================================================
66 2. デフォルトエディタVim *vim-default-editor*
68 Vimをあるファイルタイプのデフォルトエディタにするには:
69 1. Windowsのエクスプローラを起動する
70 2. ツール/フォルダオプション -> ファイルタイプ (W2K + IE5.5)
71 3. Vimを使用したい全てのファイルタイプに対して、gvimのパスを設定する。(拡張子
72 の無いファイルタイプに対しては、ファイルタイプを指定するフィールドに3つのス
76 < ファイル名にスペースを含むファイルを正しく扱うためにクォート(")が必要。
79 < これにより幾つかの状況で、短い形式のファイル名(8.3形式)を避けることができ
82 ファイルをダブルクリックしてVimで開いた時には、Vimはそのファイルのディレクトリ
85 Vimを全画面で起動したい時には、openのアクションとして次のものを使用する: >
86 gvim -c "simalt ~x" "%1"
88 新たにVimを違うディレクトリに置いた時(新しいバージョンを入手した時など)の、も
92 3. メニューから"アプリケーションから開く"を選択する
94 5. Vimの新しい位置を参照して、開くをクリックする。
95 6. "いつもこのアプリケーションを使う"をチェックする
98 *send-to-menu* *sendto*
99 Vimを"送る"メニューに追加することもできる:
100 You can also install Vim in the "Send To" menu:
101 1. Windowsのエクスプローラを起動する。
102 2. "送る"のためのディレクトリに移動する:
103 Windows 95: %windir%\sendto (e.g. "c:\windows\sendto")
104 Windows NT: %windir%\profiles\%user%\sendto (e.g.
105 "c:\winnt\profiles\mattha\sendto").
106 3. ファイル表示枠の上で右クリックして新規作成→ショートカット。
107 4. ショートカットウィザードに従ってVIM/GVIMへのフルパスを指定。
109 Vimにファイルを送ると、Vimはファイルのあるディレクトリに移動する。しかし長い
110 ディレクトリ名は短い(MS-DOS形式)で表示されてしまうことに注意。これはWindowsの"
114 notepad.exe(メモ帳)をgvim.exeに置き換えてしまうこともできるが、これには副作用
115 もある。いくつかのプログラムはnotepad.exeに依存していて、例えばファイルを印刷
116 するために"notepad -p"を使っているからです。メモ帳(notepad)はそのままにしてお
117 いて、Vimを起動するためのほかの方法を使ったほうが良い。
120 もっと抜本的なアプローチは、右マウスボタンメニューに"Edit with Vim"という項目
121 を追加するものである。これを使うとあらゆるファイルをVimで編集できるようにな
124 これは上述のファイルの関連付けと共存することができる。ファイルの関連付けは、
125 Vimで開始することを「デフォルトのアクション」にしてしまう点が違う。"Edit with
126 Vim"メニュー項目を使うと、ダブルクリックで開ける既に存在するファイルの関連付け
127 はそのままにして、したい時にはいつでもVimでファイルを編集することができる。例
128 えば、"*.mak"はmakeプログラムに関連付けることができる。この場合、そのファイル
129 をダブルクリックすればmakefileが実行されるし、"Edit with Vim"を選べばmakefile
132 どんなファイルでも選択し、右クリックで"Edit with gvim"と呼ばれるメニューオプ
133 ションを表示させることができる。このメニューオプションを選択すると、選択した
134 ファイルがgvimによって開かれる。複数のファイルを選択した場合には、二つのメ
136 "Edit with multiple gvims" -- 1つのファイルにつき1つのgvimが起動される
137 "Edit with single gvim" -- 選んだ全てのファイルが1つのgvimで開かれる
138 さらに、もしもすでにgvimが起動しているなら:
139 "Edit with existing gvim -- すでに起動しているgvimでそのファイルの編集を開
143 "install.exe"プログラムを使用すれば、簡単に"Edit with Vim"メニュー項目を追加す
144 ることができる。これはレジストリに幾つかの項目を書き加える。
146 同じことを手動で行うことも出来る。これは非常に複雑である!。できればinstall.exe
149 1. "regedit"でレジストリエディタを起動する。
152 HKEY_CLASSES_ROOT\CLSID\{51EEE242-AD87-11d3-9C1E-0090278BBD99}
153 {default} Vim Shell Extension
154 HKEY_CLASSES_ROOT\CLSID\{51EEE242-AD87-11d3-9C1E-0090278BBD99}\InProcServer32
155 {default} {path}\gvimext.dll
156 ThreadingModel Apartment
157 HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\gvim
158 {default} {51EEE242-AD87-11d3-9C1E-0090278BBD99}
159 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved
160 {51EEE242-AD87-11d3-9C1E-0090278BBD99}
162 HKEY_LOCAL_MACHINE\Software\Vim\Gvim
164 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\vim 5.6
165 DisplayName Vim 5.6: Edit with Vim popup menu entry
166 UninstallString {path}\uninstal.exe
168 {path}は実行可能ファイルのあるディレクトリパスに置き換える。
169 {default}はキー自信の値なので、タイプしない。
171 ポップアップメニューから"Edit with Vim"を削除するには、上記のレジストリ項目を
172 削除すればよい。uninstal.exeプログラムは同じことをしてくれる。Windows標準の"ア
173 プリケーションの追加と削除"のリストの、エントリーを使うことも出来る。
175 このエントリがファイルタイプの関連付けを抑制してしまうことに気が付いたら、手動
176 で関連付けをやり直す(上記を参考に、Windowsのエクスプローラを使って)。これは
177 Windows NTの幾つかのバージョンでだけ起こるらしい(Windowsのバグ?)。手続き:
178 1. ファイルタイプの名前を見つける。これはレジストリエディタを起動し、
179 \\HKEY_CLASSES_ROOTで拡張子を探すことで行える。
180 2. Windowsエクスプローラでは、表示→オプション→ファイルタイプ。リストの中から
181 ファイルタイプを探し出し"編集"をクリック。アクションのリストで、デフォルト
182 として使用したいものを選択し(通常は"開く"アクション)、"標準"ボタンをクリッ
185 "アプリケーションから開く" コンテキストメニュー *win32-open-with-menu*
188 Vimのインストーラーを使うならエクスプローラのメニューの "アプリケーションか
189 ら開く" にVimを加えるか選択することができる。これはVimでいろんなファイルを編
190 集するなら重要である。(不明瞭な理由で)全てのファイルには使えない。したがって
191 "Edit with Vim" メニューの方が使いやすい。
193 これを追加する理由の一つがインターネットエクスプローラから直接ファイルを編集
194 できるようにするためである。これを有効にするには "Tools" メニューから
195 "Internet Options..." を選択し、出てきたダイアログウインドウの "Programs" タ
196 ブの "HTML editor" にVimを選択する。そこにVimがなければインストールは完了し
199 このスクリプトを使って手作業で設定できる。
201 ----------------------------------------------------------
204 [HKEY_CLASSES_ROOT\Applications\gvim.exe]
206 [HKEY_CLASSES_ROOT\Applications\gvim.exe\shell]
208 [HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit]
210 [HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command]
211 @="c:\\vim\\vim62\\gvim.exe \"%1\""
213 [HKEY_CLASSES_ROOT\.htm\OpenWithList\gvim.exe]
215 [HKEY_CLASSES_ROOT\*\OpenWithList\gvim.exe]
217 ----------------------------------------------------------
219 "c:\\vim\\vim62" をgvim.exeが実際にある場所に変更すること。
221 これをアンインストールするにはVimのアンインストーラーを使うか "regedit" を
222 使って手作業でレジストリエントリを削除する。
224 ==============================================================================
225 3. クリップボードを使う *gui-clipboard*
227 Windowsにはテキストを一時的に格納(コピー)し、取り出す(ペースト)できるクリップ
228 ボードがある。Vimでは幾つかの方法でクリップボードに対応している。他のシステム
229 については|gui-selections|を参照。
231 "*レジスタにはクリップボードの内容が反映される。|quotestar|
233 'clipboard'オプションに文字列"unnamed"が含まれている時には、名前なしレジスタが
234 同じになる。こうすることで、ヤンク(Vimにおけるコピー"y")やペースト(Vimにおける
235 貼り付け"p")にクリップボードを、"*を付けることなく使用できる。
237 デフォルトでは'guioptions'に'a'フラグは含まれていない。これはその操作を行った
238 時にだけ、テキストがクリップボードへ送られるを意味している。単に視覚的に選択
239 (Visualモード)しただけではクリップボードには送られない。'a'フラグを加えれば、
240 (Visualモードで選択するだけで)操作をせずにもクリップボードへ送られる
243 標準的なMS-WindowsのCTRL-X、CTRL-CおよびCTRL-Vを使うには、
244 $VIMRUNTIME/mswin.vimスクリプトを使用する。_vimrcファイルに次の一行を追加する:
246 source $VIMRUNTIME/mswin.vim
248 CTRL-Cがクリップボードへのコピーになってしまうので、操作を停止すること(無限
249 ループに陥ったスクリプトを停止するなど)が、できなくなってしまう。代わりに
252 CTRL-Z がアンドゥになる。そのため、このキーでVimをサスペンドすることはできない。
253 代わりに|:suspend|を使うこと(これがサポートされていればだが)。
255 *CTRL-V-alternative* *CTRL-Q*
256 CTRL-Vがペーストに使われてしまうので、方形視覚選択(Visualモードの一種)を開始す
257 ることができない。これにはCTRL-Qを代用できる。インサートモードやコマンドライン
258 モードにおいても、もともとのCTRL-Vの代わりにCTRL-Qを使用することができる。しか
259 しターミナルでCTRL-Qが制御のために使われる時はうまく機能しない。
261 NOTE: クリップボードのサポートにはまだかなりのバグがある。|todo|参照。
263 ==============================================================================
264 4. シェルコマンド *gui-shell-win32*
266 Vimは外部コマンドを実行するのに、どんなコマンドでも実行できるようにするために
267 Vimとは別個のウィンドウを使用する。外部コマンドはちょうどDOSプロンプトから実行
271 外部コマンドの実行は"vimrun"コマンドを用いて間接的に行われる。これが働くために
272 は"vimrun.exe"コマンドが実行パスになければならない。そうでなければVimの実行
273 ファイルと同じディレクトリになければならない。"vimrun"を見つけることができなけ
274 れば、コマンドは直接実行され、そのため外部コマンドの実行が終了するとすぐにDOS
276 警告: もしも"X"ボタンでこのウィンドウを閉じてしまい、強制終了することを確認す
277 るウィンドウでアプリケーションを本当に終了してしまうと、Vimも一緒に強制終了し
278 てしまう! (":!start"で非同期的に起動されたアプリケーションには、これは当ては
281 Windows 95では、実行されるコマンドのウィンドウは、DOSとの可能な限りの互換性の
282 ため(これが問題!)常に80x25の大きさになってしまう。デフォルトのシステムフォント
283 が使用される。NTでは、コントロールパネルの"コンソール"によって設定された内容が
284 デフォルトで使用される。Win32sでは、DOSボックスのプロパティはWindowsのディレク
285 トリにある_default.pifで決定される。
288 もしも外部プログラムを使用したときに、"このプログラムはMS-DOSモードで起動しま
289 す…"のようなダイアログが表示されたならば、関連付けられたショートカットのプロ
290 パティを変更することでこれを解消することができる:
291 - Windowsエクスプローラを使用して使用されたcommand.comを探す。恐らく
292 c:\command.com、c:\dos\command.com、c:\windows\command.comなどのどれか。
293 - マウスの右ボタンで、command.comのプロパティを選択。
295 - "MS-DOSモードで起動する"をチェック解除。
299 通常、Vimはコマンドの実行が終了するのを待つ(これは多くのシェルコマンドの出力を
300 Vimが取り込んで使用できるようにするため)。Vimがプログラムを実行した後、その終
301 了を待たないように望むのならば、W95とNTでは次の構文を使用することができる: >
303 Win32sでは、代わりのウィンドウに移らなければならないだろう。Windows 3.1xにVim
304 に戻っている間にも、バックグラウンドでDOSコマンドを実行するように設定するのを
307 ==============================================================================
308 5. 特別な色 *win32-colors*
310 Win32では、通常のDOSでの色が使用される。|dos-colors|を参照。
312 付け加えて、システムが構成している色を使用することができる。それらはSys_XXXと
313 して知られ、XXXの部分は下のリストに示される、割り当てられているシステムカラー
314 名である(完全な解説はWin32の文章を参照)。大文字小文字は区別されない。注意:
315 Win32sではこれら全ての色がサポートされているわけではない。
317 Sys_3DDKShadow Sys_3DFace Sys_BTNFace
318 Sys_3DHilight Sys_3DHighlight Sys_BTNHilight
319 Sys_BTNHighlight Sys_3DLight Sys_3DShadow
320 Sys_BTNShadow Sys_ActiveBorder Sys_ActiveCaption
321 Sys_AppWorkspace Sys_Background Sys_Desktop
322 Sys_BTNText Sys_CaptionText Sys_GrayText
323 Sys_Highlight Sys_HighlightText Sys_InactiveBorder
324 Sys_InactiveCaption Sys_InactiveCaptionText Sys_InfoBK
325 Sys_InfoText Sys_Menu Sys_MenuText
326 Sys_ScrollBar Sys_Window Sys_WindowFrame
330 Sys_Window 通常のウィンドウの背景の色
331 Sys_WindowText 通常のウィンドウの文字の色
332 Sys_Highlight 選択されたテキストの背景の色
333 Sys_HighlightText 選択されたテキストの文字の色
336 Gray, Grey, LightYellow, SeaGreen, Orange, Purple, SlateBlue, Violet,
339 付け加えて、"rgb.txt"で定義される色も使うことができる。このファイルはX11のもの
340 として知られている。何行かを抜粋する: >
342 255 218 185 peach puff
346 これはファイルのレイアウトを示している: 最初に赤、緑、そして青の輝度を10進数で
347 記述し、続いて色の名前を定義している。4つのフィールドはスペースで区切られてい
350 rgb.txtはX11のディストリビューションから手に入れることができる。
351 "/usr/X11R6/lib/X11/"あたりのディレクトリにおいてあることが多い。Vimでは
352 $VIMRUNTIMEディレクトリに置く。だから"$VIMRUNTIME/rgb.txt"にファイルが見つける
355 ==============================================================================
356 6. ダイアログとブラウズ *gui-w32-dialogs* *dialog*
358 コンソールバージョンから受け継がれる伝統的なインターフェースはもちろん、さらに
359 Win32 GUIでは幾つかの操作に見慣れたWindowsのコンポーネントを使用することができ
365 その他のバージョンではコンソールベースで行われていた"confirm"ファミリ(すなわち
366 'confirm'オプションと|:confirm|コマンドと|confirm()|関数)で、GUIベースのダイア
367 ログが表示される。'guioptions'の'c'フラグでこれを変更できる。
372 ファイルを編集するコマンドの前に":browse"を付けると、存在するファイルを選択す
373 るためのウィンドウ選択ダイアログが使用される。|:browse|を参照。
378 Win32 GUI版ではMotifの「切取メニュー」をエミュレートする。個々のメニューの最上
379 位には、小さな「切り取り線」のグラフィックスが存在する。これを選択すると同じメ
380 ニューのエントリーがある、フローティングウィンドウが作成される。フローティング
381 メニューを使用すれば、いちいちメニューバーに移動することなく、オリジナルのメ
382 ニューの(サブメニューも含めた)項目にアクセスすることができる。
383 これはサブメニューの奥の方のコマンドを頻繁に使用するときに非常に便利。
384 切取メニューは好きなところに配置し、常にVimのメインウィンドウよりも手前に表示
385 される。普通に閉じることで取り除くこともできる;もちろんVimを終了すれば自動的に
389 :te[aroff] {name} {name}というメニューを切り取る。指定されたメニューは少
390 なくとも一つ以上のサブエントリを持たねばないが、メ
392 (|win32-hidden-menus|)を参照。
396 "ファイル"メニューが(あれば)切取メニューとして表示される。 >
398 :amenu ]Toolbar.Make :make<CR>
400 メインのメニューバーには存在しないフローティングメニューを作成する。
402 ']'で始まるメニューは表示されないことに注意。
404 ==============================================================================
405 7. コマンドライン引数 *gui-w32-cmdargs*
407 パラメータの中のコマンドラインの分析は MS Windows で標準化されていない。GVim
408 はコマンドラインの分析のロジックを提供しなければならない。このロジックはVim
409 をコンパイルするのに使われたシステムが提供するロジックとは異なるだろう。この
410 違いはダブルクォート(")の使い方が一般的でないのと関係する。
411 引数の "C:\My Music\freude.txt" と "+/Sch\"iller" は同じように扱われる。引数
412 "+/Sch""iller" はgvimやvim、それがどのようにコンパイルされたかによって、扱い
417 b) パラメータはスペースで区切られている
418 c) ダブルクォートで囲めばパラメータにスペースを含むことができる
419 d) バックスラッシュ(\)が一つ以上の後に続くダブルクォート(")は特別な文
420 字である。バックスラッシュの数を半分に割って小数を切捨てた数に意味が
421 ある。奇数ならバックスラッシュはスペースやタブの効果を変える。偶数な
422 らバックスラッシュはリテラルのダブルクォートを作る。
427 \\" はリテラルのバックスラッシュと特別なダブルクォート
428 \\\" はリテラルのバックスラッシュとリテラルのダブルクォート
429 \\\\" はリテラルのバックスラッシュ二つと特別なダブルクォート
430 \\\\\" はリテラルのバックスラッシュ二つとリテラルのダブルクォート
434 gvim "C:\My Music\freude" +"set ignorecase" +/"\"foo\\" +\"bar\\\"
436 は "C:\My Music\freude" を開き、次のコマンドを実行する: >
437 set ignorecase; /"foo\ and /bar\"
439 ==============================================================================
440 8. その他色々 *gui-w32-various*
443 "ファイル/印刷"メニューはシンタックスハイライトを使って印刷する。|:hardcopy|を
444 参照してください。もしもテキストを装飾なしで印刷したいのなら、デフォルトのプリ
445 ンタがインストールされていれば次のようにできるでしょう。 >
448 Vimでは多くのMS Windows標準の機能をサポートしている。それらの幾つかは別の場所
449 で説明されている: |'mouse'|、|win32-hidden-menus|を参照。
452 Vimのウィンドウに1つもしくは複数のファイルをドラッグ&ドロップすることができ、
453 それらは普通に開かれる。|drag-n-drop|を参照。
456 :si[malt] {key} simulate pressing {key} while holding Alt pressed.
457 {not in Vi} {only for Win32 versions}
458 Altと{key}の同時押しをシミュレートする。
459 {Viにはない機能} {Win32バージョンだけの機能}
461 通常、Vimでは使用可能なマッピングを増やすために、Alt-<Key>の全ての組み合わせを
462 使うことができる。これはメニューにアクセスするためのAltキーの標準的な使い方と
464 標準的な振る舞いをさせるための近道は、'winaltkeys'オプションに"yes"を設定する
465 ことである。しかしこうするとAltを使用したマッピングは一切使えなくなる。
466 もう一つの方法は'winaltkeys'に"menu"を指定することである。マッピングされていな
467 いALTキーだけが、メニューのショートカットとしてWindowsに解釈される。だけども現
469 これを回避するために、('winaltkeys'が"yes"でない時に):simaltコマンドで、
470 WindowsのスタイルでAltキーを押すふりを、Vimにさせることができる。これを使って
471 Windows標準のアクションを興すための、Altキーの組み合わせ(ほかのものでも)をマッ
472 ピングすることができる。いくつか例を示そう: >
474 :map <M-f> :simalt f<CR>
475 これでAlt-Fを押すとキーストロークのAlt→Fがシミュレートされ、'ファイル(F)'メ
476 ニュー(Menu.vimで定義される)が表示される。 >
477 :map <M-Space> :simalt ~<CR>
478 このマッピングによりAlt-SpaceでVimウィンドウのシステムメニューが表示される。
479 '~'はsimaltにおいて文字<Space>を表現するのに使われることに注意。 >
480 :map <C-n> :simalt ~n<CR>
481 Control-Nに、Alt-SpaceにNを続けるマッピングを施す。これはシステムメニュー経由
484 これらのキーは使用している言語によって異なることがある。
486 *intellimouse-wheel-problems*
487 インテリマウスのホイールを使用すると、Vimは入力を受け付けなくなることがある。
489 コントロールパネル - マウス - ホイール - スクロール - 例外
491 アプリケーションのリストにgvimを追加する。この問題はIntellimouseのドライババー
492 ジョン2.2を使用し、"ユニバーサルスクロール"を有効にしている時にだけ起こる。
494 vim:tw=78:sw=4:ts=8:ft=help:norl: