世界を動かす技術を、日本語で。

Neovim 0.12.0

概要

  • NVIM v0.12.0 の主要なインストール方法と注意点のまとめ
  • Windows、macOS、Linux 各プラットフォームでの手順を簡潔に解説
  • アーキテクチャ別(x86_64/arm64) の違いに注意
  • AppImageやMSI など、複数の配布形式に対応
  • インストール時の 追加依存関係や警告回避方法 も記載

NVIM v0.12.0 インストール手順まとめ

  • 公式リリース :NVIM v0.12.0(LuaJIT 2.1.1774638290搭載)
  • リリースノート・Changelog :新機能や修正点は公式ドキュメント参照
  • 最新情報:help newsコマンドで確認可能

Windowsでのインストール

  • ZIP形式
    • nvim-win64.zip(またはnvim-win-arm64.zip)をダウンロード
    • ZIPファイルを 展開
    • ターミナルでnvim.exeを実行
  • MSI形式
    • nvim-win64.msi(またはnvim-win-arm64.msi)をダウンロード
    • MSIインストーラーを実行
    • ターミナルでnvim.exeを実行
    • 注意 :Windows Server環境ではvcruntime140.dllの追加インストールが必要な場合あり

macOSでのインストール

  • x86_64アーキテクチャ
    • nvim-macos-x86_64.tar.gzをダウンロード
    • セキュリティ警告回避のためxattr -c ./nvim-macos-x86_64.tar.gzを実行
    • tar xzvf nvim-macos-x86_64.tar.gzで展開
    • ./nvim-macos-x86_64/bin/nvimを実行
  • arm64アーキテクチャ
    • nvim-macos-arm64.tar.gzをダウンロード
    • xattr -c ./nvim-macos-arm64.tar.gzで警告回避
    • tar xzvf nvim-macos-arm64.tar.gzで展開
    • ./nvim-macos-arm64/bin/nvimを実行

Linuxでのインストール

  • x86_64アーキテクチャ
    • AppImage形式
      • nvim-linux-x86_64.appimageをダウンロード
      • chmod u+x nvim-linux-x86_64.appimage && ./nvim-linux-x86_64.appimageで実行
      • FUSE非対応時./nvim-linux-x86_64.appimage --appimage-extractで展開し、./squashfs-root/usr/bin/nvimを実行
    • tar.gz形式
      • nvim-linux-x86_64.tar.gzをダウンロード
      • tar xzvf nvim-linux-x86_64.tar.gzで展開
      • ./nvim-linux-x86_64/bin/nvimを実行
    • glibc要件 :要件未満の場合は古いglibc用の非公式ビルドを検討
  • arm64アーキテクチャ
    • AppImage形式
      • nvim-linux-arm64.appimageをダウンロード
      • chmod u+x nvim-linux-arm64.appimage && ./nvim-linux-arm64.appimageで実行
      • FUSE非対応時./nvim-linux-arm64.appimage --appimage-extractで展開し、./squashfs-root/usr/bin/nvimを実行
    • tar.gz形式
      • nvim-linux-arm64.tar.gzをダウンロード
      • tar xzvf nvim-linux-arm64.tar.gzで展開
      • ./nvim-linux-arm64/bin/nvimを実行

その他のインストール方法

  • パッケージマネージャ経由 でのインストールもサポート
    • 例:brew, apt, yum, chocoなど各種パッケージ管理ツール対応

Hackerたちの意見

プロジェクトがずっと0verのままでいるのはいつも興味深いね。プロジェクトに詳しい人、"v1"リリースに必要なことって何だと思う?

多分永遠にないかもね: https://0ver.org/

1.0に必要なことを追跡するロードマップとGitHubのイシューがあるよ。 https://github.com/neovim/neovim/issues/20451 https://neovim.io/roadmap/

たぶん:!がviみたいに動いて、POSIXが言う通りになるときかな。冗談だよ、そんなことは絶対にないけどね。

AFAIK、主にRPC APIとLua標準ライブラリの安定化についてだね。https://github.com/neovim/neovim/issues/20451

  • d21b8c949ad7 pack: 内蔵プラグインマネージャー vim.pack を追加 誰かこれをlazy.nvimよりも良いって売り込んでくれない?Claudeにlazyの設定をpackに変換してもらったけど、あまり満足できなかったんだ。すごく冗長になっちゃって。

vim.packの上にlazy.nvimみたいなのができると思ってる。いくつかの慣習はなくなるかもね(例えば、ずっと.setupを呼び出すとか)。

ここを見てみて。vim.packについての素晴らしいガイドだよ。 https://echasnovski.com/blog/2026-03-13-a-guide-to-vim-pack....

組み込まれてるのはいいね。ただ、設定ファイルにlazyがない時に自動でインストールする行がいくつかあるんだ。

切り替えようとしたけど、lazy.nvimの方が良かった。

どれだけ冗長になったの? 新しいプラグインマネージャーのインターフェースはliterature just vim.pack.add({url})だよ。それが冗長だとは思えないんだけど。

俺はずっとVim/Nvimには既にパッケージマネージャーが内蔵されてると思ってたんだけど、~/.vim/pack/*/startの中にgit cloneするだけでいいんだよね。「本物」のパッケージマネージャーを使わないことで何か見落としてることある?

変更をテストしてるときにうっかりメインブランチを使っちゃって、設定がたくさん壊れたよ(特にLSP周り、CodeCompanionのレスポンスがすごく遅くなった)。だから、アップグレードはちょっと待とうかな。

lspconfigの非推奨は、すごく痛いアップグレードだったよ。ドキュメントがあまりにも不十分だったからね。でも最終的には、すべてのLSPサーバーの設定をvim.lsp.configブロックに移して、使ってるサーバーを指定してvim.lsp.enableを呼び出す形になった。切り替えた後、Masonが自分の設定で何をしてるのかまだよくわからないけど、まあいいや。

次の0.13では、複数のカーソルが追加されるみたい!この機能が何に使えるのか全然わからないけど、なんか面白そうだね。 https://neovim.io/roadmap/

みんなが普段どうやってneovimを使ってるのかはよくわからないけど、Zedでは複数のカーソル(特に複数のファイルバッファと組み合わせると)が、リファクタリングを素早く簡単にするのにめっちゃ便利だよ。find and replaceや単純なリネームじゃ足りない時に役立つんだ。必要なところにカーソルを追加して、いろんな場所やファイルで一気に編集できるのがいいんだよね。これのおかげで、Zedが初期の頃にVS Codeで使ってた拡張がたくさんないのに、続けられたんだ。

これめっちゃ楽しみ!少なくともSublime Textでは、複数のカーソルが半構造化テキストのスニペットに対するその場しのぎの変換や、似たような行に同じ編集を瞬時に視覚的に適用するのにすごく強力なツールだって感じてる。

Kakouneは、複数のカーソルを使って多くの機能を置き換えてるよ。sedみたいなコマンドもあって、エリアを選択して、その中でパターンを検索して複数のカーソルを作るって感じ。そこから通常の編集ができるから、単純な置換よりもずっと複雑なこともできるんだ。リファクタリングには本当に役立つよ。例えば、LSPがなくても(プレーンテキスト用でも)シンボルのリネームやログファイルの並べ替え・選択が簡単にできる。

VSCodeのマルチカーソルサポートのおかげで、マクロの必要性が98%減ったよ。確かにマクロはもっと強力だけど、間違えるのも簡単だしね。マルチカーソルだと、どこで入力がうまくいかないかすぐに分かるし、調整もしやすい。マルチカーソルは、全体的に俺の生産性を一番上げてくれた機能だね。

マルチカーソルにそんなに騒ぐ理由って何?ただの「.」を使うのとどう違うの?

それを使ってテキスト編集すると、クールなフィードバックループがあって、変更が即座に見えるし、その変更が何に適用されるかも事前に分かる。マクロを何度も繰り返すのとは全然違うよ。

複数カーソルが、2010年頃にSublime Textを使い始めるきっかけになった機能だよ。今でもテキスト編集ツールボックスの必需品だね。Ctrl-D Ctrl-D Ctrl-D ...

「Image API: vim.ui.img」おお、いいね!

あなた用のカーソル、Claude用のカーソル、って感じ :)

LLMたち: ほら、コード書けるよ!Neovimユーザーたち: ビール持ってて、マルチカーソルが来たよ!

誰かClaudeや他のコーディングツールと一緒にvim使ってる人いる?使いたいんだけど、いいワークフローが見つからなくて。

Sidekick.nvimはいいよ、横に「本物」のターミナルウィンドウがあって、選べるエージェントがたくさんある。オープンコード、クラウド、ジェミニ、コパイロット、基本的に関連するものはほとんど揃ってる:D 軽量な接続層だから、コンテキストを送るのにも役立つ。

他でも言ったけど、:term claudeを分割で使うのはすごく便利だよ!

そうそう、タブを分けて、左にNeovim、右にコンパニオン、もしくは別のタブでもいいね。プラグインのcodecompanion.nvimもめっちゃいいよ。よく使うタスクに使ってる。例えば、vaf(関数の周りをビジュアル選択)とか、ad(リーダーキーでドキュメント文字列追加)とかね。で、良いドキュメントがどうあるべきかをシステムプロンプトの指示で関数に文書化してくれるんだ。

CodeCompanion.nvimはかなりいいプラグインだね。ちょっとしたことにはそれを使って、大きなタスクには埋め込みターミナルでオープンコードを使ってるよ。

誰か俺のサイトをチェックして、Vimの基本を学びたい人がいたらどうぞ。ここだよ: https://vimgolf.ai 各レベルごとにneovimのインスタンスにプロキシしてる。まだいくつかの問題を解決中だけど、もうすぐ完成する予定。

試すだけでもアカウントが必要みたいだね。

それはVimの伝統や文化、選択の自由に反するかもしれないけど、競合しているプラグインに実装されている、今は壊れやすい機能(Helixみたいな)をもっと内蔵してほしいな。そうしないと、現代的なセットアップを手に入れるために、競合するVimスタートパックやプラグイン、設定ファイルを組み合わせる必要があるから。

「モダン」って何?ほとんどのこういう不満は「かっこよく見られたいけど、VSCodeとIDEAのちょっとしか知らないから、もっと簡単にしてほしい」って感じだよね。

Neovimは、LSPサポートやパッケージ管理みたいな機能を実装するためにフォークされたんだよね。VIMも最終的には追いついたけど。何があってもVimの伝統に反することはないと思うよ。具体的にどの機能を内蔵してほしい?

Neovimはその方向に積極的に進んでるよ。

エコシステムからベストを取り入れるのはいいと思うけど、コアに取り込むものは長持ちするべきで、APIの一部と見なされるべきだよね。これは慎重に考える必要があるし、プラグインは、何かを取り込む理由がはっきりするまではすごくうまく機能するよ。

これがLanguage Server Protocolで起こったことだよ。0.9以前(確かそうだったと思うけど)、LSPサーバーと連携するにはプラグインをインストールしなきゃいけなかったけど、0.9でNeoVim自体にサポートが統合されたんだ。

先週のサプライチェーン攻撃があったから、アップグレードするのちょっと躊躇しちゃうな。

組み込みのインクリメンタルASTベースのビジュアル選択はいいね。

Neovimの一番の問題は新しい!の挙動なんだよね。誰か、Vimみたいにaltターミナル画面を切り替えて、メイン画面にだけ出力する方法知ってる?