Windows で GVim/Neovim を右クリックメニューから開けるようにする
Windowsでファイルを1つだけ確認したいとき、GVimやNeovimをすでに開いていなければ、わざわざ起動してからドラッグ&ドロップするのが面倒でした。右クリックメニューに「GVimで開く」を追加しておくと、この一手間が消えます。
regeditの「ファイル > エクスポート」)を取っておくと安心です。
目次(7項目)
GVimを右クリックメニューに登録する
次の内容をメモ帳などでgvim_open.regとして保存します。gvim.exeのパスは環境に合わせて書き換えます。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\gvim]
@="GVimで開く"
"Icon"="C:\\Program Files\\Vim\\vim92\\gvim.exe"
[HKEY_CLASSES_ROOT\*\shell\gvim\command]
@="\"C:\\Program Files\\Vim\\vim92\\gvim.exe\" \"%1\""
保存したら、このファイルを右クリックして「管理者として実行」します。確認ダイアログが出たら「はい」を選びます。OSの再起動は不要で、すぐに反映されます。
登録内容の意味
HKEY_CLASSES_ROOT\*\shell\gvimは、任意のファイル(*)を右クリックしたときのメニュー項目を定義するキーです。配下の各項目には、それぞれ次の役割があります。
| 項目 | 役割 |
|---|---|
shell\gvimの既定値 | メニューに表示される文字列 |
Icon | アイコンに使う実行ファイルのパス |
shell\gvim\commandの既定値 | クリックしたときに実際に実行されるコマンド |
%1 | 右クリックしたファイルのパスに置き換わる |
このshellキー配下の仕組みはVim固有のものではなく、Windows共通の右クリックメニュー拡張機構そのものです。Microsoft公式のWin32 APIドキュメントでは、この「コマンド名」の正体を次のように説明しています。
A verb is a simple text string that is used by the Shell to identify the associated command. Each verb corresponds to the command string used to launch the command in a console window or batch (.bat) file.
ここでいう「verb」がgvimのようなキー名にあたり、1つのファイルタイプに複数のverbを登録すれば、右クリックメニューに複数のコマンドを並べることもできます。
Neovim(nvim-qt / Neovide)を登録する場合
GUI版のNeovimを使っているなら、実行ファイルのパスを差し替えるだけで同じ手順が使えます。nvim-qt.exeを使っている場合の例は次のとおりです。
[HKEY_CLASSES_ROOT\*\shell\neovim]
@="Neovimで開く"
"Icon"="C:\\Program Files\\Neovim\\bin\\nvim-qt.exe"
[HKEY_CLASSES_ROOT\*\shell\neovim\command]
@="\"C:\\Program Files\\Neovim\\bin\\nvim-qt.exe\" \"%1\""
より新しいGUIフロントエンドであるNeovideを使っている場合も、neovide.exeのパスに差し替えれば同じ要領で登録できます(winget経由のインストール手順)。ターミナル版のNeovimを直接呼びたい場合は、wt.exe nvim "%1"のようにWindows Terminal経由で開くコマンドにすると便利です。この方法は実行ファイルとアイコンのパスさえ分かれば成立するので、GVim/Neovim以外のVimベースGUIエディタでも原理は変わりません。
特定の拡張子だけに登録を絞る
すべてのファイルに表示されると右クリックメニューが長くなって煩わしい、という場合は、キーのパスを*から拡張子に変えると解決します。たとえば.txtファイルだけに登録したいなら、HKEY_CLASSES_ROOT\*\shell\gvimの部分をHKEY_CLASSES_ROOT\.txt\shell\gvimに変更します。
Windows 11では「その他のオプションを表示」の中に入る
Windows 11では右クリックメニューが刷新され、項目を絞ったコンパクトなメニューが既定になりました。ここで登録した項目は、その新しいメニューには並びません。従来型のメニュー(レガシーメニュー)側に入るので、開くには一段深く辿る必要があります。
- メニュー最下部の「その他のオプションを表示」を選ぶ
- またはShift+F10を押して最初からレガシーメニューを開く
However, the refreshed context menu shows fewer items compared to the Legacy Context menu. ... You can display the Legacy Right-Click Context menu by clicking "Show more options" at the end of the list or pressing Shift+F10.
「手順どおりレジストリを書いたのにメニューに出てこない」という場合、まず疑うべきはここです。登録自体は成功していて、表示される場所が変わっただけ、というケースがほとんどです。
毎回2階層たどるのが煩わしいなら、レガシーメニューを既定に戻す設定もあります。Windows Terminalなどで次のコマンドを実行し、エクスプローラーを再起動(またはサインインし直し)すると反映されます。
reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve
ただしこれはVim用の設定ではなく、エクスプローラー全体の右クリックメニューを昔の形に戻す変更です。他のアプリのメニュー項目もまとめて増えるので、Vimを開くためだけに入れるかどうかは好みが分かれます。元に戻したいときは、追加したInprocServer32キーを削除します。
最初は全ファイル対象で登録していましたが、右クリックメニューが毎回長くなるのが気になって、結局.txtや.mdなど普段よく開く拡張子だけに絞りました。GVimを開いた状態で使うことが多い人ほど恩恵は小さく、Explorerからファイルをつまみ読みする機会が多い人ほど効いてくる設定だと感じています。
要点:レジストリ編集が不安なら、無理に本手順を使わず「送る」メニュー(shell:sendtoフォルダにショートカットを置く)で代用しても構いません。効果はほぼ同じで、レジストリに触れない分安全度が高くなります。
まとめ
右クリックメニューへの登録は、レジストリの2つのキーを追加するだけで完了します。GVimに限らずNeovimのGUI版でも実行ファイルのパスを差し替えれば同じ手順が使えるので、自分の環境に合わせて調整してください。Windows 11で項目が見当たらないときは、レジストリを疑う前に「その他のオプションを表示」の中を確認してください。開いた後のメニューバーやツールバーが煩わしい場合はguioptionsでの非表示設定を、フォントが気に入らない場合はguifontの設定もあわせて確認すると便利です。