NeovimをVSCode上でセットアップしてみた(macOS)

NeovimをVSCode上でセットアップしてみた(macOS)

Clock Icon2024.04.30

はじめに

はじめまして、育成推進チーム(新卒)の中田です! 技術研修を受けるにあたって、新しいパソコンでNeovimをVSCodeにセットアップしたので、手順を共有したいと思います。

Neovimとは

公式サイトによると、以下のように紹介されています。

hyperextensible Vim-based text editor

直訳だと「ハイパー拡張可能な Vim ベースのテキスト エディター」です。標準的なテキストエディタであるVimに比べて、Lua言語によるプラグインなど様々な機能が加えられています。

Neovimを使い始めた理由

もともとモード切り替え等の操作感が肌に合っていたため、VSCodeでVimの拡張機能を使用していました。しかし遅延が挟まるような体験が多く、どうしたものかと悩んでいたところにこちらの拡張機能を見つけました。確かに以前より速度が速いことが実感できました。

VSCodeとNeovim

先述したように以前のVim拡張機能ではなし得ない速度や機能が、Neovim拡張機能によって実現されました。

次のような特徴がNeovim拡張機能によって紹介されています。

  • 🎉 Neovim をバックエンドとして利用することにより、ほぼ完全に機能が完成した Vim 統合。
  • 🔧 カスタムinit.vimおよび多くの Vim プラグインをサポートします。
  • 🥇 ファーストクラスで遅延のない挿入モード。VSCode に最適な機能を実行させます。
  • 🤝 VSCode 機能 (lsp/オートコンプリート/スニペット/マルチカーソルなど) との完全な統合。

こちらが拡張機能のGitHubのページになります。

環境

以下の環境でセットアップを行いました。

macOS: Sonoma 14.4.1

Visual Studio Code v1.88.0 (Universal)

Neovim v0.9.5

また、Visual Studio Codeはインストール済みであることを想定しています。

Neovimのインストール

まず、ターミナルからHomebrewでインストールします

brew install neovim

次に、インストールされたかどうか確認します。コマンドはneovimではなくnvimですので間違えやすいです。

nvim --version

私がインストールしたタイミングでは、バージョン0.9.5でした。

拡張機能のインストール

VSCodeでNeovim拡張機能を追加します。

拡張機能タブからneovimと検索すれば表示されるかと思いますので、そちらからインストールします。

実験的アフィニティについて

こちらは適用せずともNeovimのセットアップは可能です(エディタを開くたびに設定の適用を促す通知が来るので適用推奨です)

NeovimのGitHubページによると、アフィニティという項目の設定が推奨されています。これにより拡張機能が独自のスレッドで実行されるようになり、パフォーマンスが向上するようです。詳しくはGitHubページをご参照下さい。

設定手順を以下に載せておきます。

  1. VSCodeの設定を開く
  2. 検索欄からで「affinity」で検索し、「Extensions › Experimental: Affinity」を確認する
  3. 項目をasvetliakov.vscode-neovim, 値を1に設定する

VSCodeの再起動

再起動してNeovimが機能するように反映させます。

まとめ

以前はWSL2でNeovimを使用していましたが、今回macOSでセットアップした結果、環境を跨ぐ必要がないためシンプルな環境が整いました。特にパスの設定を行わなくて良かったので、このあたりはmacOSいいなと感じました。

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイト をぜひご覧ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.