-
Notifications
You must be signed in to change notification settings - Fork 33
/
Copy pathgui_w32.jax
490 lines (386 loc) · 27.4 KB
/
gui_w32.jax
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
*gui_w32.txt* For Vim バージョン 9.1. Last change: 2024 Jan 23
VIMリファレンスマニュアル by Bram Moolenaar
Win32でのVimのグラフィカルユーザーインターフェイス *gui-w32* *win32-gui*
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を始める *gui-w32-start*
Win32のGUIバージョンは、どんな名前で起動されたかなんておかまい無しに、いつも
GUIでスタートする。
GUIは常にWindowsのサブシステムとして実行される。ほとんどのシェルはVimを起動し
た直後にコマンドプロンプトへ自動的に復帰する。そうでなかったら、"start" コマン
ドを使うと良い: >
start gvim [options] file ..
< *E988*
コンソールバージョンに |-g| オプションを付けても gvim.exe が実行されて GUI を
スタートできる: >
vim -g [options] file ..
この機能を動作させるには、gvim.exe が vim.exe と同一のディレクトリに存在し、か
つこの機能を有効にしてコンパイルされていなければならない。
コンソールバージョンから `:gui` を使うこともできる。しかし、これは実験的な機能
で、かつこの機能を有効にしてコンパイルされていなければならない。
セッションファイルを使って現在のコンソール Vim の状態が GUI Vim で再生成される。
Note: 全てのフォント(太字、斜体)は同じ大きさでなければならない!!! そうしない
場合、文字が欠けたり表示がゴチャゴチャになったりしてしまうだろう。Vimはフォン
トの大きさを検査していない。画面上でのピクセルサイズが同じでなければならない。
同じポイントサイズのフォントでも、同じピクセルサイズのフォントだとは限らないこ
とに注意! 加えてフォントの位置情報(アセントとディセント)も同じでなければなら
ない。
Win32 GUIではメニューが拡張されている: "編集/フォント設定"。Windowsの標準フォ
ントセレクトダイアログが起動される。
メニューの高さ設定は、Win32 GUIでは動作しない。
*gui-win32-maximized*
Vimのウィンドウを最大化した状態で起動したいのならば、vimrcかgvimrcに次のコマン
ドを書き加える: >
au GUIEnter * simalt ~x
<
Vim をプラグインとして使う *gui-w32-windowid*
普通に gvim が起動されると、gvim のウィンドウがトップレベルで作成される。コマ
ンドラインオプション |--windowid| に10進または16進の数値を指定すると、Vim はそ
の ID を持つウィンドウの子ウィンドウを作成する。これによって、Vim を他のアプリ
ケーションのプラグインとして使うことができる。これは完全にプログラマ向けのイン
ターフェイスであり、Vim を正しく起動するアプリケーションの対応なくしては何の役
にも立たない。
==============================================================================
2. デフォルトエディタVim *vim-default-editor*
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. Vimを使って開きたいファイルを選ぶ
2. <Shift-F10>を押す
3. メニューから "アプリケーションから開く" を選択する
4. "その他" をクリック
5. Vimの新しい位置を参照して、開くをクリックする。
6. "いつもこのアプリケーションを使う" をチェックする
7. OKをクリック
*send-to-menu* *sendto*
Vimを "送る" メニューに追加することもできる:
1. Windowsのエクスプローラーを起動する。
2. "送る" のためのディレクトリに移動する:
C:\Users\%user%\AppData\Roaming\Microsoft\Windows\SendTo
3. ファイル表示枠の上で右クリックして新規作成→ショートカット。
4. ショートカットウィザードに従ってVIM/GVIMへのフルパスを指定。
Vimにファイルを送ると、Vimはファイルのあるディレクトリに移動する。しかしいくつ
かのWindowsのバージョンでは長いディレクトリ名は短い(MS-DOS)形式で表示されてし
まうことに注意。これはWindowsの "送る" の仕組みによる制限である。
*notepad*
notepad.exe(メモ帳)をgvim.exeに置き換えてしまうこともできるが、これには副作用
もある。いくつかのプログラムはnotepad.exeに依存していて、例えばファイルを印刷
するために "notepad -p" を使っているからである。メモ帳(notepad)はそのままにし
ておいて、Vimを起動するためのほかの方法を使ったほうが良い。
*win32-popup-menu*
もっと抜本的なアプローチは、右マウスボタンメニューに "Edit with Vim" という項
目を追加するものである。これを使うとあらゆるファイルをVimで編集できるようにな
る。
これは上述のファイルの関連付けと共存することができる。ファイルの関連付けは、
Vimで開始することを「デフォルトのアクション」にしてしまう点が違う。"Edit with
Vim" メニュー項目を使うと、ダブルクリックで開ける既に存在するファイルの関連付
けはそのままにして、したい時にはいつでもVimでファイルを編集することができる。
例えば、"*.mak" はmakeプログラムに関連付けることができる。この場合、そのファイ
ルをダブルクリックすればmakefileが実行されるし、"Edit with Vim" を選べば
makefileを編集することができる。
どんなファイルでも選択し、右クリックで "Edit with gvim" と呼ばれるメニューオプ
ションを表示させることができる。このメニューオプションを選択すると、選択した
ファイルがgvimによって開かれる。複数のファイルを選択した場合には、二つのメ
ニューオプションが提示されるだろう:
"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-registry*
"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 8.2
DisplayName Vim 8.2: Edit with Vim popup menu entry
UninstallString {path}\uninstall.exe
{path}は実行可能ファイルのあるディレクトリパスに置き換える。
{default}はキー自身の値なので、タイプしない。
ポップアップメニューから "Edit with Vim" を削除するには、上記のレジストリ項目
を削除すればよい。uninstall.exeプログラムは同じことをしてくれる。Windows標準
の "アプリケーションの追加と削除" のリストの、エントリを使うこともできる。
このエントリがファイルタイプの関連付けを抑制してしまうことに気がついたら、手動
で関連付けをやり直す(上記を参考に、Windowsのエクスプローラーを使って)。これは
Windows NTの幾つかのバージョンでだけ起こるらしい(Windowsのバグ?)。手続き:
1. ファイルタイプの名前を見つける。これはレジストリエディタを起動し、
\\HKEY_CLASSES_ROOTで拡張子を探すことで行える。
2. Windowsエクスプローラーでは、表示→オプション→ファイルタイプ。リストの中か
らファイルタイプを探し出し "編集" をクリック。アクションのリストで、デフォ
ルトとして使用したいものを選択し(通常は "開く" アクション)、"標準" ボタンを
クリックする。
"アプリケーションから開く" コンテキストメニュー *win32-open-with-menu*
("Open With...")
Vimのインストーラを使うならエクスプローラーのメニューの "アプリケーションから
開く" にVimを加えるか選択することができる。これはVimでいろんなファイルを編集す
るなら重要である。(不明瞭な理由で)全てのファイルには使えない。したがって "Edit
with Vim" メニューの方が使いやすい。
これを追加する理由の一つがインターネットエクスプローラーから直接ファイルを編集
できるようにするためである。これを有効にするには "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\\vim82\\gvim.exe \"%1\""
[HKEY_CLASSES_ROOT\.htm\OpenWithList\gvim.exe]
[HKEY_CLASSES_ROOT\*\OpenWithList\gvim.exe]
----------------------------------------------------------
"c:\\vim\\vim82" をgvim.exeが実際にある場所に変更すること。
これをアンインストールするにはVimのアンインストーラを使うか "regedit" を使って
手作業でレジストリエントリを削除する。
==============================================================================
3. クリップボードを使う *gui-clipboard*
Windowsにはテキストを一時的に格納(コピー)し、取り出す(ペースト)できるクリップ
ボードがある。Vimでは幾つかの方法でクリップボードに対応している。他のシステム
については|gui-selections|を参照。
"*レジスタにはクリップボードの内容が反映される。|quotestar|
'clipboard' オプションに文字列 "unnamed" が含まれている時には、名前なしレジス
タが同じになる。こうすることで、ヤンク(Vimにおけるコピー "y")やペースト(Vimに
おける貼り付け "p")にクリップボードを、"* を付けることなく使用できる。これが動
作しない場合は 'clipboard' オプションに文字列 "unnamedplus" を使用する。
デフォルトでは 'guioptions' に 'a' フラグは含まれていない。これはその操作を行っ
た時にだけ、テキストがクリップボードへ送られることを意味している。単に視覚的に
選択 (Visualモード)しただけではクリップボードには送られない。'a' フラグを加え
れば、(Visualモードで選択するだけで)操作をせずにもクリップボードへ送られる。
*mswin.vim*
標準的なMS-WindowsのCTRL-X、CTRL-CおよびCTRL-Vを使うには、
$VIMRUNTIME/mswin.vimスクリプトを使用する。_vimrcファイルに次の一行を追加する:
>
source $VIMRUNTIME/mswin.vim
CTRL-Cがクリップボードへのコピーになってしまうので、操作を停止すること(無限
ループに陥ったスクリプトを停止するなど)が、できなくなってしまう。代わりに
CTRL-Breakが使える。
CTRL-Z がアンドゥになる。そのため、このキーでVimをサスペンドすることはできない。
代わりに|:suspend|を使うこと(これがサポートされていればだが)。
*CTRL-V-alternative* *CTRL-Q*
CTRL-Vがペーストに使われてしまうので、矩形ビジュアル選択を開始することができな
い。これにはCTRL-Qを代用できる。挿入モードやコマンドラインモードにおいても、も
ともとのCTRL-Vの代わりにCTRL-Qを使用することができる。しかしターミナルでCTRL-Q
が制御のために使われる時はうまく機能しない。
NOTE: クリップボードのサポートにはまだかなりのバグがある。|todo|参照。
==============================================================================
4. シェルコマンド *gui-shell-win32*
Vimは外部コマンドを実行するのに、どんなコマンドでも実行できるようにするために
Vimとは別個のウィンドウを使用する。外部コマンドはちょうどDOSプロンプトから実行
されるように、独自の実行環境を獲得する。
*win32-vimrun*
外部コマンドの実行は "vimrun" コマンドを用いて間接的に行われる。これが働くため
には "vimrun.exe" コマンドが実行パスになければならない。そうでなければVimの実
行可能ファイルと同じディレクトリになければならない。"vimrun" を見つけることが
できなければ、コマンドは直接実行され、そのため外部コマンドの実行が終了するとす
ぐにDOSウィンドウが閉じられる。
警告: もしも "X" ボタンでこのウィンドウを閉じてしまい、強制終了することを確認
するウィンドウでアプリケーションを本当に終了してしまうと、Vimも一緒に強制終了
してしまう! (":!start" で非同期的に起動されたアプリケーションには、これは当て
はまらない)
コントロールパネルの "コンソール" によって設定された内容がデフォルトで使用され
る。
*win32-!start*
通常、Vimはコマンドの実行が終了するのを待つ(これは多くのシェルコマンドの出力を
Vimが取り込んで使用できるようにするため)。Vimがプログラムを実行した後、その終
了を待たないように望むのならば、次の構文を使用することができる: >
:!start [/min] {command}
"/min" 引数を指定すると、ウィンドウは最小化される。
==============================================================================
5. 特別な色 *win32-colors*
Win32では、通常のDOSでの色が使用される。|dos-colors|を参照。
付け加えて、システムが構成している色を使用することができる。それらはSys_XXXと
して知られ、XXXの部分は下のリストに示される、割り当てられているシステムカラー
名である(完全な解説はWin32の文章を参照)。大文字小文字は区別されない。Note:
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*
付け加えて、デフォルトのカラーリストで定義される色も使うことができる。詳細は
|:colorscheme| を参照のこと。これらの色は以前は $VIMRUNTIME/rgb.txt で定義され
ていたもので、現在は $VIMRUNTIME/colors/lists/default.vim にて初期化された値が
|v:colornames| にある。
==============================================================================
6. ダイアログとブラウズ *gui-w32-dialogs* *dialog*
コンソールバージョンから受け継がれる伝統的なインターフェイスはもちろん、さらに
Win32 GUIでは幾つかの操作に見慣れたWindowsのコンポーネントを使用することができ
る。
6.1 ダイアログ
その他のバージョンではコンソールベースで行われていた "confirm" ファミリ(すなわ
ち 'confirm' オプションと|:confirm|コマンドと|confirm()|関数)で、GUIベースのダ
イアログが表示される。'guioptions' の 'c' フラグでこれを変更できる。
6.2 ファイルブラウザー
ファイルを編集するコマンドの前に ":browse" を付けると、存在するファイルを選択
するためのウィンドウ選択ダイアログが使用される。|:browse|を参照。
6.3 切取メニュー
Win32 GUI版ではMotifの「切取メニュー」をエミュレートする。個々のメニューの最上
位には、小さな「切り取り線」のグラフィックスが存在する。これを選択すると同じメ
ニューのエントリがある、フローティングウィンドウが作成される。フローティングメ
ニューを使用すれば、いちいちメニューバーに移動することなく、オリジナルのメ
ニューの(サブメニューも含めた)項目にアクセスすることができる。
これはサブメニューの奥の方のコマンドを頻繁に使用するときに非常に便利。
切取メニューは好きなところに配置し、常にVimのメインウィンドウよりも手前に表示
される。普通に閉じることで取り除くこともできる;もちろんVimを終了すれば自動的に
それらも閉じられる。
*:tearoff* *:te*
:te[aroff] {name} {name}というメニューを切り取る。指定されたメニューは少
なくとも一つ以上のサブエントリを持たねばないが、メ
ニューバーに表示されている必要は無い。
(|win32-hidden-menus|)を参照。
例: >
:tearoff ファイル(F)
"ファイル" メニューが(あれば)切取メニューとして表示される。 >
:amenu ]Toolbar.Make :make<CR>
:tearoff ]Toolbar
メインのメニューバーには存在しないフローティングメニューを作成する。
']' で始まるメニューは表示されないことに注意。
==============================================================================
7. コマンドライン引数 *gui-w32-cmdargs*
コマンドライン引数はコンソール版と同じ挙動となる。|win32-cmdargs| を参照。
==============================================================================
8. その他色々 *gui-w32-various*
*gui-w32-printing*
"ファイル/印刷" メニューはシンタックスハイライトを使って印刷する。|:hardcopy|
を参照すること。もしもテキストを装飾なしで印刷したいのなら、デフォルトのプリン
タがインストールされていれば次のようにできるだろう。 >
:w >>prn
Vimでは多くのMS-Windows標準の機能をサポートしている。それらの幾つかは別の場所
で説明されている: |'mouse'|、|win32-hidden-menus|を参照。
*drag-n-drop-win32*
Vimのウィンドウに1つもしくは複数のファイルをドラッグ&ドロップすることができ、
それらは普通に開かれる。|drag-n-drop|を参照。
*:simalt* *:sim*
:sim[alt] {key} Alt と {key} の同時押しをシミュレートする。
{Win32バージョンだけの機能}
Note: ":si" は "i" フラグ付きの ":s" になる。
通常、Vimでは使用可能なマッピングを増やすために、Alt-<Key>の全ての組み合わせを
使うことができる。これはメニューにアクセスするためのAltキーの標準的な使い方と
衝突する。
標準的な振る舞いをさせるための近道は、'winaltkeys' オプションに "yes" を設定す
ることである。しかしこうするとAltを使用したマッピングは一切使えなくなる。
もう一つの方法は '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ウィンドウのシステムメニューが表示される。
'~' はsimaltにおいて文字<Space>を表現するのに使われることに注意。 >
:map <C-n> :simalt ~n<CR>
Control-Nに、Alt-SpaceにNを続けるマッピングを施す。これはシステムメニュー経由
でVimのウィンドウを最小化する。
これらのキーは使用している言語によって異なることがある。
*intellimouse-wheel-problems*
インテリマウスのホイールを使用すると、Vimは入力を受け付けなくなることがある。
次の場所へ行き:
コントロールパネル - マウス - ホイール - スクロール - 例外
アプリケーションのリストにgvimを追加する。この問題はIntellimouseのドライババー
ジョン2.2を使用し、"ユニバーサルスクロール" を有効にしている時にだけ起こる。
XPM サポート *w32-xpm-support*
GVim は、MS-Windows で XPM ファイルのサポート付きでビルドすることができる。
|+xpm_w32|
詳細は Make_mvc.mak ファイルを見て、XPM で検索すること。
XPM サポートが動作するか試すには、以下を行うこと: >
:help
:let runtime = escape($VIMRUNTIME, ' \')
:exe 'sign define vimxpm icon=' .. runtime .. '\\vim16x16.xpm'
:exe 'sign place 1 line=1 name=vimxpm file=' .. expand('%:p')
<
github から vim16x16.xpm ファイルを入手する必要があるかもしれない:
https://github.com/vim/vim/blob/master/runtime/vim16x16.xpm
キーコード変換戦略 *w32-experimental-keycode-trans-strategy*
Patch v8.2.4807 で、W32 の GVIM は、より多くのキーボードショートカットを使用で
きるようにすること、特に非標準のキーボードレイアウトをサポートすることを目的と
して、実験的なキーコード変換方法に変更された。このサポートを実装するために、
Win API TranslateMessage() 呼び出しは削除され、代わりにキーコードの認識が
ToUnicode() Win API 呼び出しに切り替えられた。このアプローチにより、多数の特殊
なケースが明らかになったが、これらは明らかに TranslateMessage() 実装によってカ
バーされており、それぞれ個別に対処する必要がある。したがって、当面はこの機能を
実験的であると宣言し、「古典的」キーコード変換方法をデフォルトとして再び復活さ
せることが決定された。
「実験的」キーコード変換方法の使用に関する議論は、おそらくまだしばらく続くだろ
う。それまでの間、W32 GVIM で「古典的」キーコード変換方法に戻るこの変更の影響
を受ける場合は、次のスニペットを使用して vimrc で「実験的」変換方法を再度有効
にすることができる。
>
:call test_mswin_event('set_keycode_trans_strategy', {'strategy': 'experimental'})
<
同様に、「古典的」キーコード変換方法を元に戻す必要がある場合 (例えば、テスト目
的など)、以下を使用する:
>
:call test_mswin_event('set_keycode_trans_strategy', {'strategy': 'classic'})
<
あるいは (この方法は、test_mswin_event() を呼び出すことができない TINY GVIM ビ
ルドのために特に役立つ)、環境変数 VIM_KEYCODE_TRANS_STRATEGY を目的の値
("experimental" または "classic") に設定し、デフォルトをオーバーライドすること
もできる。例えば、dos プロンプトに以下のように入力する:
>
set VIM_KEYCODE_TRANS_STRATEGY=experimental
gvim.exe
<
vim:tw=78:sw=4:ts=8:noet:ft=help:norl: