VSCode Neovim 拡張機能

VSCode Vim の Undo が調子悪くなる。リモート接続使っているときの不具合らしい。しばらく時間がかかりそう。
上記で VSCode Neovim というのもあるのを見かけたので少し試してみることに。

Neovim が必要そう
README をざっと読んだ感じでは Neovim をバックエンドにしながら動作するもよう。
で、試しにインストールしてみたらやはり Neovim が必要そう。できればローカルにはインストールしたくない。
拡張機能をリモートにインストールして、Neovim もリモートにインストールしたら動いた。が、リモートにインストールしていると反応がよろしくない。
どちらにしても vscode.dev などでは動かない。あきらめてローカルへインストールする。

Neovim をインストール
ローカルは Windows 環境が多いので Windows でのメモ。
プラグインのインストールで Git とかも必要いなりそうなのでWinGet を使うことにした。
これで nvim-qt も含めてインストールされる(nvim のみにする方法は不明)。
winget install --id Neovim.Neovim -e
が、動作しない環境もあった。
1つめは、nvim.exe
を実行してもプロンプトに戻ってしまう(終了コードは 0
でないかもしれないが確認はしていない)。niv-qt --vim
で実行ファイル指定も crashed になる。
これが怪しいかなと。
- If you are missing
VCRUNTIME140.dll
, install the Visual Studio 2015 C++ redistributable (choose x86_64 or x86 depending on your system).
これで動くようになった。
winget install --id Microsoft.VCRedist.2015+.x64 -e
もうひとつは Windows 10 Home 32bit。「該当するインストーラーが見つかりません。詳細については、ログを参照してください。」になる。Windows は win64 のみのもよう、あきらめる。

一時的な Profile をつくる
Newvim を動かせない環境がいくつかあるので、VSCode Neovim に VSCode Vim に差し替えた Profile をつくる。おそらく github.dev でちょっと編集したいときがあると思うので、そういうときは差し替えてある Profile に切り替えるということで(ワークスペースでなく VSCode のエディション? についてくる Profile があるとよいのだけど)。
なお、最初は Neovim に差し替えた Profile を一時的に利用しようとしたが、普段使いの方を差し替えている。今回は VSCode Vim に戻す予定なので、Undo の調子がよくなった時点で普段使いの Profile を VSCode Vim に戻せば全体が戻る、という予定。

Vim Plugin
VSCode Neovim では surround.vim 相当の機能がないので別途インストールが必要。Neovim 側にインストールすればそのまま利用できるぽいので Vundle.vim で入れる(winget で Git.Git もインストールした)。
if exists('g:vscode')
" VSCode extension
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
" Plugin 'tpope/vim-fugitive'
Plugin 'tpope/vim-surround.git'
call vundle#end()
filetype plugin indent on
" syntax on
else
endif
これだと、 ~/.vim/bundle
の下にインストールされる。臨時で使うのでなければもう少し考える必要あり。
fugitive をちょっと試したところ、もしかしたら動くのでないかという気もしないでもない感じだった。
シンタックスハイライトは VSCode 側の設定が使われる?

使ってみる
だいたい動くようになった。もともとあまりカスタマイズしてないのでとりあえず良さげ。
:
や /
はコマンドパレット的な UI で入力。
操作中に入力フィールドがぱかぱかするとちょっと気になる。
その代わりに <C-n>
<C-p>
などの挙動が普通なのはよいかも。
問題はやはりローカルに環境が必要なことかな。設定が面倒というのと、履歴なども同期させるのが難しいかな。