Open6

VSCode Neovim 拡張機能

hankei6kmhankei6km

Neovim が必要そう

README をざっと読んだ感じでは Neovim をバックエンドにしながら動作するもよう。

で、試しにインストールしてみたらやはり Neovim が必要そう。できればローカルにはインストールしたくない。

拡張機能をリモートにインストールして、Neovim もリモートにインストールしたら動いた。が、リモートにインストールしていると反応がよろしくない。

どちらにしても vscode.dev などでは動かない。あきらめてローカルへインストールする。

hankei6kmhankei6km

Neovim をインストール

ローカルは Windows 環境が多いので Windows でのメモ。

https://github.com/neovim/neovim/wiki/Installing-Neovim#windows

プラグインのインストールで Git とかも必要いなりそうなのでWinGet を使うことにした

これで nvim-qt も含めてインストールされる(nvim のみにする方法は不明)。

winget install --id Neovim.Neovim -e

が、動作しない環境もあった。

1つめは、nvim.exe を実行してもプロンプトに戻ってしまう(終了コードは 0 でないかもしれないが確認はしていない)。niv-qt --vim で実行ファイル指定も crashed になる。

これが怪しいかなと。

  1. 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 のみのもよう、あきらめる。

hankei6kmhankei6km

一時的な Profile をつくる

Newvim を動かせない環境がいくつかあるので、VSCode Neovim に VSCode Vim に差し替えた Profile をつくる。おそらく github.dev でちょっと編集したいときがあると思うので、そういうときは差し替えてある Profile に切り替えるということで(ワークスペースでなく VSCode のエディション? についてくる Profile があるとよいのだけど)。

なお、最初は Neovim に差し替えた Profile を一時的に利用しようとしたが、普段使いの方を差し替えている。今回は VSCode Vim に戻す予定なので、Undo の調子がよくなった時点で普段使いの Profile を VSCode Vim に戻せば全体が戻る、という予定。

hankei6kmhankei6km

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 側の設定が使われる?

hankei6kmhankei6km

使ってみる

だいたい動くようになった。もともとあまりカスタマイズしてないのでとりあえず良さげ。

:/ はコマンドパレット的な UI で入力。

操作中に入力フィールドがぱかぱかするとちょっと気になる。

その代わりに <C-n> <C-p> などの挙動が普通なのはよいかも。

問題はやはりローカルに環境が必要なことかな。設定が面倒というのと、履歴なども同期させるのが難しいかな。