Skip to content

macOS で VSCode Neovim をインストールする

深い理由は無いのですが、「vim 練習しよう」と思いたち、macOS 環境の Visual Studio Code に VSCode Neovim をインストールしたので手順をメモしておきます。

「押しっぱなしで入力出来ない」問題の解決

VSCode + Neovim 構成にした場合、デフォルトだと「特定のキーを押しっぱなしにしても連続入力にならない」「キーを連打する必要がある」という問題があります。 この問題を解決するにはターミナルから下記を実行しておきます。 下記は一度だけ実行すれば OK です。

1
2
defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false

Neovim のインストール

VScode Noevim は Visual Sutdio の内部的に、実際の Neovim を利用するそうです。 その為、事前に Neovim をインストールしておく必要があります。 現時点でインストール可能な Neovim はバージョン 0.9.4 でした。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
$ brew info neovim
==> neovim: stable 0.9.4 (bottled), HEAD
Ambitious Vim-fork focused on extensibility and agility
https://neovim.io/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/n/neovim.rb
License: Apache-2.0
==> Dependencies
Build: luarocks ✘, cmake ✘, lpeg ✘
Required: gettext ✔, libtermkey ✘, libuv ✘, libvterm ✘, luajit ✘, luv ✘, msgpack ✘, tree-sitter ✘, unibilium ✘
==> Options
--HEAD
    Install HEAD version
==> Analytics
install: 38,724 (30 days), 90,480 (90 days), 195,203 (365 days)
install-on-request: 38,457 (30 days), 89,812 (90 days), 193,725 (365 days)
build-error: 31 (30 days)

Homebrew でインストールします。

1
brew install neovim

インストールされました。

1
2
3
4
5
6
7
8
9
$ nvim --version
NVIM v0.9.4
Build type: Release
LuaJIT 2.1.1697887905

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/opt/homebrew/Cellar/neovim/0.9.4/share/nvim"

Run :checkhealth for more info

設定ファイルの用意

Neovim 用の設定ファイルは ~/config/nvim/init.lua です。 以降元の vim 用設定が無いのであれば、Neovim 用の設定ファイルを新規作成しておきます。

1
2
mkdir -p  ~/.config/nvim/
touch ~/.config/nvim/init.lua

インストール

一般的なプラグイン同様、Visual Studio Code 上からインストールします。

01

インストール後は一度、Visual Studio Code を再起動します。 以下のようなダイアログが表示された場合は OK をクリックします。 このダイアログについては PSA: Use extensions.experimental.affinity to speed up extension #1051 で言及されています。

02

これで最低限、VSCode Neovim を使う準備が出来ました。 後は好みで ~/.config/nvim/init.lua をカスタマイズしていきます。