「Neovimで編集する」をコンテキストメニューに追加する【Windows10】

2022/01/21

目次 [隠す]

windows neovim ロゴ

本記事の経緯と主旨

VSCodeでVimエミュレータの拡張機能を使用しているが、何かと制限があり、かゆい所に手が届かず、小さなストレスがだいぶ蓄積されてきた今日このごろ。

ふと目にしたこの記事が気になった。

ASCII.jp:VSCodeのvim操作を高速化! vscode-neovimを導入してみた

FIXERがお届けするアドベントカレンダー企画第2回、vscode-neovimでVSCodeのvim操作を高速化しつつ.vimrcも使えるようにしてみました。

blog card

特にこのくだり。

VSCodeVimのようにVIMをエミュレートするのではなく、NeoVimとVSCodeを統合する拡張機能です。ほとんどの操作を埋め込まれたNeoVimインスタンスで動作させるので速いらしい

まさに求めているものではないか。

しかし「Neovim」である。

噂はずっと耳にしているがトラディショナルVimから移行するキッカケがなかったので完全に未知である。

だがこれは神の啓示だ。

オレのVimが、ついに「Neo」になる時がきたのだ。

とりあえずWindows10のメインPCとUbuntu20.04のノートPCにNeovimをインストールし、init.vimを共通化できるようにあれこれやりつつ、どうにか使える状態にこぎつけたのでこれは後日まとめる。

今回の主題は、『Windowsのエクスプローラで、ファイル右クリックからのコンテキストメニューに「Neovimで編集する」を追加したい』である。

本記事のゴール

ファイルを右クリックしたコンテキストメニューに「Neovimで編集する」を追加する

メニュー選択により、該当ファイルをPowerShell in Windows Terminalで開く

環境

OS - Windows10 Pro 21H2
Neovim - v0.6.1
Windows Terminal - v1.11.3471.0
PowerShell - v7.2.1

作業手順

エディタで下記コードを記述したファイルを拡張子「.reg」で任意の場所に保存する。

※Neovimのパスは C:\Apps\Neovim を前提にしているので適宜修正を(6カ所)

Windows Registry Editor Version 5.00

  [HKEY_CLASSES_ROOT\*\shell\nvim]
  @="Edit with Neovim"
  "Icon"="\"C:\\Apps\\Neovim\\bin\\nvim-qt.exe\""

  [HKEY_CLASSES_ROOT\*\shell\nvim\command]
  @="wt -p \"Windows PowerShell\" --title neovim C:\\Apps\\Neovim\\bin\\nvim.exe \"%1\""

  [HKEY_CLASSES_ROOT\directory\shell\nvim]
  @="Neovim Here"
  "Icon"="\"C:\Apps\\Neovim\\bin\\nvim-qt.exe\""

  [HKEY_CLASSES_ROOT\directory\shell\nvim\command]
  @="wt -p \"Windows PowerShell\" --title neovim C:\\Apps\\Neovim\\bin\\nvim.exe \"%v\""

  [HKEY_CLASSES_ROOT\directory\background\shell\nvim]
  @="&Neovim Here"
  "Icon"="\"C:\\Apps\\Neovim\\bin\\nvim-qt.exe\""

  [HKEY_CLASSES_ROOT\directory\background\shell\nvim\command]
  @="wt -p \"Windows PowerShell\" --title neovim C:\\Apps\\Neovim\\bin\\nvim.exe \"%v\""

作成した「reg」ファイルをダブルクリックまたはEnterで実行し、「はい」を選択。

スクリーンショット

この状態ではコンテキストメニューの表示が「Edit with Neovim」なのでレジストリエディタで編集する。「あとで編集するなら直接regファイルに書けばよかったじゃん」と思うのだが、日本語がうまく認識されなかったので、この手順とする。

スクリーンショット

Winキー + R で「ファイル名を指定して実行」を開き、「regedit」と入力してEnterでレジストリエディタをオープン。

HKEY_CLASSES_ROOT\*\shell\nvim の「既定」を右クリック→修正で、データの値を編集する

スクリーンショット

右クリック、オッケー。

スクリーンショット

Windows Terminal の PowerShellで開いている、オッケー。

スクリーンショット

以上。

参考

Neovim Windows installer: Add "Edit with Neovim" to right click menu similar to gVim · Issue #7222 · neovim/neovim