Vim 9.2は2026年2月14日に公開されました。前版9.1(2024年1月2日)から2年1か月の間に積み上がったパッチ9.1.0001〜9.1.2148に区切りを付けた版で、Vim9 scriptの列挙型・ジェネリック関数・タプル型、補完のファジーマッチ、diffのlinematch、実験的なWayland対応、XDG Base Directory準拠が主な中身です。公開後もパッチはほぼ毎日積まれており、2026年10月22日時点の最新は9.2.1224です。その間にモードライン経由の脆弱性が2件(深刻度high)見つかり、9.2.0350でモードラインから変更できるオプションを絞る'modelinestrict'が既定で有効になりました。版番号が同じ9.2でも、パッチによって挙動が変わるということです。この記事では新機能の中身、リリース履歴と導入パッチ番号、公開後の変更、環境別の確認・更新手順をまとめます。
まとめ:Vim 9.2の要点と最新バージョンの確認手順
- 区切りの付いた最新版はVim 9.2(2026年2月14日公開)。ソースツリーの
src/version.hのVIM_VERSION_DATE_ONLYと、公式のVim 9.2 releasedで確認できる日付です。 - 2026年10月22日時点の最新パッチは9.2.1224(公式リポジトリのタグ)。Windows向けのvim-win32-installerの最新は9.2.1217(2026年10月21日)です。
- 目玉はVim9 scriptの型機能3点(
:enum、ジェネリック関数、Tuple型)、補完のファジーマッチと自動補完、diffのlinematchとdiffanchors、縦型のtabpanel。Wayland対応は公式告知でも「experimental」です。 - 9.2公開後に52件のセキュリティ勧告(high 2件・medium 45件・low 5件)。high 2件はどちらも細工したファイルを開くだけでOSコマンドが実行されるモードラインの穴で、9.2.0272と9.2.0276で修正済みです。
- 9.2.0350以降は
'modelinestrict'が既定でオン。モードラインで変更できるのはtabstopやshiftwidthなどの許可リスト内のオプションに限られ(9.2.0350では20個、検証した9.2.1217では21個)、numberやlistは黙って無視されます。 - 確認は
vim --versionの版番号と適用済みパッチ欄。機能の有無は版番号でなくhas('patch-9.1.1232')やhas('tabpanel')で判定します。 - 配布元ごとに版がずれています。Ubuntu 26.04 LTSは9.1.2141、24.04 LTSは9.1.0016、Homebrewは9.2.1200、wingetは9.2.1186です。Ubuntuは版番号を上げずに脆弱性の修正だけを取り込んでいます。
Vim 9.2で入った主な変更点
公式の変更一覧は:help version-9.2(runtime/doc/version9.txt)にあります。「9.1と9.2の間に行われた改善」として記載されている内容を、実務でどこに効くかで5つに分けます。
Vim9 scriptの列挙型・ジェネリック関数・タプル型
9.1でクラスとインターフェースが加わり、9.2では型に関する機能がさらに増えました。追加されたのは列挙型(:enum)、ジェネリック関数、タプル型(Tuple)です。組み込み関数をオブジェクトのメソッドとして呼べるbuiltin-object-methods、保護された_new()メソッド、クラス内の全メソッドを一括コンパイルする:defcompileも入っています。次のコードはVim 9.2.1217で実行し、enum Color.Red {name: Red, ordinal: 0}と92を出力しました。
vim9script
enum Color
Red,
Green,
Blue
endenum
def Head<T>(items: list<T>): T
return items[0]
enddef
var pair: tuple<string, number> = ('vim', 92)
echo Head<Color>([Color.Red, Color.Green])
echo pair[1]
書くときに踏みやすい点が2つあります。ジェネリック関数は呼び出し側にもHead<Color>と型引数が要り、この例をVim 9.2.1217で実行すると、省略時にはE1559になります。Vim9 scriptのコメントは#で、旧来の"を使うとE114です。タプルはlist<any>と違い、位置ごとの型と要素数を型そのものに書けるので、関数から複数の値を返すときに型検査が効きます。プラグインを書く言語としてDenoと比べたい場合はdenops.vimとは|Deno 2でVim/Neovimプラグインを書く仕組みと導入・開発手順【v8対応】が参考になります。
補完のファジーマッチと自動補完
補完は:help version-9.2で記載量がいちばん多い領域です。'completeopt'にfuzzyを足すと挿入モード補完があいまい一致になり、nosort(並べ替えない)、preinsert(挿入予定のテキストをハイライト)、nearest(カーソルからの距離順)も加わりました。レジスタの中身から補完するi_CTRL-X_CTRL-R、キー入力なしに候補を出すins-autocompletion、ソースごとに候補数を絞る{flag}^<limit>記法も入っています。
" 挿入モード補完をあいまい一致にして、並べ替えを抑える
set completeopt=menu,menuone,fuzzy,nosort
" 現在のバッファから最大5件、ほかのバッファから補完する
set complete=.^5,b
fuzzyのときの候補収集を制御していた'completefuzzycollect'は9.2時点で廃止済みで、設定しても効きません。complete_info()がmatchesキーで実際にポップアップへ出ている候補を返すようになった点は、補完プラグインを書く側に効く変更です。
diffモードのlinematchとdiffanchors
'diffopt'のlinematchは、変更された塊のなかで似ている行同士を並べ直してハイライトの精度を上げます。'diffanchors'はバッファ内の指定アドレスをアンカーとしてセクションごとに独立してdiffを取る設定で、'diffopt'にanchorが含まれるときだけ使われます。既定値も変わり、9.1.0のinternal,filler,closeoffが9.2ではinternal,filler,closeoff,indent-heuristic,inline:charになりました。vimrcでdiffoptを明示していない環境では、9.2へ上げた時点でdiffの見え方が変わります。
Wayland対応(実験的)とXDG Base Directory
WaylandのUIとクリップボードのサポートが入り(:help wayland)、ビルド時の--with-waylandで有効になります。公式告知は冒頭で「experimental Wayland support」と表現しています。常用環境への導入前には、利用するコンポジタで表示とクリップボードの動作を確認してください。seatを指定する'wlseat'、接続タイムアウトの'wltimeoutlen'、コンポジタに接続しない起動オプション-Yが追加されました。9.2で入ったフォーカスを奪う'wlsteal'は、不具合が多いとして開発版で削除されています。
XDG対応では、Unix系で$HOME/.config/vim/vimrcが読まれるようになり、個人用ランタイムディレクトリを$MYVIMDIRで参照できます。ただし:help xdg-vimrcのとおり、XDG側が読まれるのは$HOMEと$HOME/.vimに初期化ファイルが無いときだけです。
tabpanel・Windows GUI・既定値の変更
横並びの'tabline'を縦置きにしたtabpanelが追加されました。表示内容は'tabpanel'に'statusline'と同じ書式で書き、配置と幅は'tabpanelopt'のalign・columns(既定20)で指定します。Windows版GUIには、メニューとタイトルバーのダークモード('guioptions'のd)、Windows 11のタイトルバー装飾(C)、全画面表示(s)が入りました。GTK版の既定フォントサイズは10ptから12ptに上がっています。
見落としやすいのが、defaults.vimにあった値の組み込み既定値への移動です。Vim 9.2.1217をvim -u NONE -N(vimrcもdefaults.vimも読まない起動)で起動して値を読み出すと、次のようになりました。
| オプション | 9.1.0の既定 | 9.2の既定(実測) |
|---|---|---|
| history | 50 | 200 |
| backspace | 空 | indent,eol,start |
| showcmd | Unixではオフ | オン |
| ruler | オフ | オン |
| commentstring | /*%s*/ | /* %s */ |
表のうちhistory・backspace・showcmd・rulerの新しい既定値はnocompatible時に適用されますが、commentstringの既定値はcompatible時も同じです。-Nを付けないvim -u NONEはcompatibleモードになり、同じビルドでもhistoryは0、backspaceは空、showcmdとrulerはオフでした。CIやDockerで最小構成のVimを使っている場合は、版差を受けないようvimrcで値を明示しておくのが確実です。
Vim 9.0から9.3開発版までのリリース履歴とパッチ番号
Vimはメジャー版をまとめて開発するのではなく、日々のパッチを積み上げてある時点で版番号を上げます。そのため9.2の新機能はすべて、先に9.1のパッチとして配布されていました。
| バージョン | 公開日 | この版までに積んだパッチ |
|---|---|---|
| Vim 9.0 | 2022年6月28日 | 8.2系のパッチ |
| Vim 9.1 | 2024年1月2日 | 9.0.0001〜9.0.2190 |
| Vim 9.2 | 2026年2月14日 | 9.1.0001〜9.1.2148 |
| Vim 9.3(開発中) | 未定 | 9.2.0001〜9.2.1224(10月22日時点) |
9.2の主要機能を入れたパッチ番号
runtime/doc/version9.txtのパッチ一覧から、機能を導入した最初のパッチを拾いました。この番号はそのまま後述のhas()判定に使えます。
| 機能 | 導入パッチ |
|---|---|
| Wayland UI | 9.1.0064 |
| 列挙型(enum) | 9.1.0219 |
| 補完のファジーマッチ | 9.1.0463 |
| $MYVIMDIR(XDG対応) | 9.1.0718 |
| 対話型の :Tutor | 9.1.0836 |
| diffのlinematch | 9.1.1009 |
| タプル型(Tuple) | 9.1.1232 |
| tabpanel | 9.1.1391 |
| レジスタ補完(CTRL-X CTRL-R) | 9.1.1408 |
| diffanchors | 9.1.1557 |
| ジェネリック関数 | 9.1.1577 |
| 自動補完(ins-autocompletion) | 9.1.1590 |
対話型の:Tutorは、パッチ9.1.0836の説明に「Port and include the interactive vimtutor plugin from Neovim」とあるとおり、Neovimのプラグインを移植したものです。
開発中のVim 9.3に入っている変更
version9.txtにはversion-9.3節が「work in progress」として既にあり、9.2.xのパッチで入った変更が積まれています。公開日は決まっていません。目立つものは次のとおりです。
- GTK 4 GUIの実験的サポート(9.2.0501以降・
--enable-gui=gtk4)とGTKの全画面表示 - ポップアップの透過と画像表示(cairo・GDI・kitty・sixel)
- デバッグアダプタープロトコル用の
dapチャネル、複数行のステータスライン('statuslineopt')、ウィンドウごとのハイライト置換('winhighlight') :mksessionが出力するセッションファイルがVim9 scriptになる- NeXTStep対応の削除(9.2.0122)と、後述の
'modelinestrict'
9.3の項目でも、パッチが入ったビルドなら版番号9.2のまま使えます。版番号ではなくパッチ番号で追う必要があるのは、9.2のときと同じです。
9.2公開後のセキュリティ修正とmodelinestrictの挙動
公式リポジトリのセキュリティ勧告は、9.2公開日の2026年2月14日から10月22日までに52件出ています(high 2件・medium 45件・low 5件)。直近では10月15日に、Rustの:makeでディレクトリ名からExコマンドを注入できる問題が9.2.1201で修正されました。中身の大半は「細工したファイルやディレクトリを開いた・補完した・:makeした時点でコマンドが走る」型で、パッチを追う理由はここにあります。
モードライン経由の高深刻度脆弱性2件と修正パッチ
| CVE | 影響する版 | 修正パッチ | 入口 |
|---|---|---|---|
| CVE-2026-34714 | 9.1.1391以上・9.2.0272未満(+tabpanel) | 9.2.0272 | tabpanelのモードライン |
| CVE-2026-34982 | 9.2.0276未満 | 9.2.0276 | complete等のモードライン |
CVE-2026-34714は、'tabpanel'オプションに式を含むオプションの印(P_MLE)が付いておらず、'modelineexpr'がオフでもモードラインから式を入れられた問題です。勧告は「This vulnerability has been introduced with Vim v9.1.1391」と書いており、tabpanelを入れたパッチそのものが入口でした。CVE-2026-34982は'complete'のF{func}指定などから同じ経路で抜けられた問題です。どちらもCVSS 8.2で、詳細はGHSA-2gmj-rpqf-pxvhとGHSA-8h6p-m6gr-mpw9に記載されています。
modelinestrictの許可リスト21項目と例外
オプションに印を付けて回る修正では穴が尽きないため、9.2.0350(2026年4月14日)でモードラインの許可リスト方式が入りました。:help 'modelinestrict'によれば既定はオンで、許可されるのはautoindent・cindent・commentstring・expandtab・filetype・foldcolumn・foldenable・foldmarker・foldmethod・modifiable・readonly・rightleft・shiftwidth・smartindent・softtabstop・spell・spelllang・tabstop・textwidth・varsofttabstop・vartabstopの21個です。許可リスト外の設定は原則としてエラーを出さずに無視されます。ただし、モードライン内のset nomodelineは例外として受け付けられ、以後のモードライン処理を止めます。
末尾に# vim: set ts=4 sw=4 nu list textwidth=60 :と書いたファイルを、Vim 9.2.1217で開いて値を読み出した結果が次の表です。
| 設定 | tabstop | shiftwidth | textwidth | number | list |
|---|---|---|---|---|---|
| modelinestrict(既定) | 4 | 4 | 60 | 0 | 0 |
| nomodelinestrict | 4 | 4 | 60 | 1 | 1 |
チームのリポジトリでモードラインにnumberやwrap、fileencodingを書いている場合、パッチを上げた日から黙って効かなくなります。エラーが出ないので気付きにくいところです。nomodelinestrictで許可リストによる制限を解除できますが、防御範囲が狭まるため勧めません(9.2.0272と9.2.0276で修正済みの2件が、この設定だけで再発するわけではありません)。文字コードなどEditorConfigが対応する設定は.editorconfig(Vim 9.1以降は同梱のpackadd editorconfigで読めます)かftpluginへ移すのが筋です。なお'modelinestrict'は9.2.xのパッチで入ったため、ヘルプではchanged-9.3の側に載っています。
Ubuntuのセキュリティ修正とパッケージリビジョン
Ubuntu 26.04 LTSのvimは9.1.2141のままですが、パッケージの変更履歴にはCVE-2026-34714とCVE-2026-34982の修正パッチが入っており、2026年9月8日公開の9.1.2141-1ubuntu4.9まで修正が続いています。9.1.2141はtabpanelの脆弱性が入った範囲(9.1.1391以降)にありますが、修正はパッケージ側で塞がれています。ディストリ版の安全性は上流の版番号でなく、パッケージのリビジョンとセキュリティ更新の有無で判断します。一方、'modelinestrict'のような新しいオプションはバックポートの対象外になりやすいので、exists('+modelinestrict')で手元のビルドにあるかを確かめてください。
インストール済みVimのバージョン確認とパッチ単位の機能判定
:version と v:version・v:versionlong の読み方
シェルからはvim --version、Vimのなかからは:versionで確認します。先頭に版番号と公開日、Included patches:の行に適用済みパッチの範囲が出ます。パッチ欄の行番号は環境によって異なります。日本語環境では「適用済パッチ」と表示されます。
$ vim --version | head -3
VIM - Vi IMproved 9.2 (2026 Feb 14, compiled Oct 22 2026 00:07:04)
macOS version - x86_64
Included patches: 1-1217
スクリプトではv:versionとv:versionlongを使えます。v:versionはメジャー版の100倍にマイナー版を足した整数で、9.2なら902です。v:versionlongは末尾4桁にパッチ番号を含み、9.2.1217なら9021217になります。
パッチ番号による判定とビルド機能による判定の使い分け
版番号だけで機能の有無を判定すると取りこぼします。9.2の新機能は9.1のパッチとして配布済みなので、版番号が9.1のビルドでも該当パッチを含んでいれば使えるからです。判定の書き方は2種類あり、役割が違います。
1つ目のhas('patch-9.1.1232')は、その機能を入れたパッチがソースに入っているかを見ます。:help feature-listには「The “patch-7.4.248” feature means that the Vim version is 7.5 or later, or it is version 7.4 and patch 248 was included.」とあり、より新しい版なら常に真を返します。2つ目のhas('tabpanel')やexists('+tabpanel')は、そのビルドに機能が組み込まれているかを見ます。次のスクリプトをvim --clean -es -S chk.vimで実行すると、両方の結果をファイルに書き出せます。
let s = []
call add(s, 'v:versionlong=' . v:versionlong)
call add(s, 'patch-9.1.1232=' . has('patch-9.1.1232'))
call add(s, 'patch-9.1.1391=' . has('patch-9.1.1391'))
call add(s, 'has(tabpanel)=' . has('tabpanel'))
call add(s, 'patch-9.2.0350=' . has('patch-9.2.0350'))
call add(s, 'exists(+modelinestrict)=' . exists('+modelinestrict'))
call writefile(s, 'vimchk.txt')
qa!
macOSに同梱のVim(9.1・パッチ1-1752・Normal版)と、ソースからhuge構成でビルドしたVim 9.2.1217で実行した結果です。
| 判定 | macOS同梱 9.1.1752 | 9.2.1217 huge |
|---|---|---|
| v:versionlong | 9011752 | 9021217 |
| has(‘patch-9.1.1232’)(Tuple) | 1 | 1 |
| has(‘patch-9.1.1391’)(tabpanel) | 1 | 1 |
| has(‘tabpanel’) | 0 | 1 |
| has(‘patch-9.2.0350’) | 0 | 1 |
| exists(‘+modelinestrict’) | 0 | 1 |
macOS同梱版は版番号が9.1でも、タプル型とtabpanelのパッチは入っています。それでもhas('tabpanel')は0です。src/feature.hでFEAT_TABPANELがFEAT_HUGEのときだけ定義されるため、Normal版には機能が組み込まれていません。パッチ番号はソースに入ったかどうか、機能名はビルドに入ったかどうかを示します。
vim9script
# 誤り: 9.1 系のパッチ入りビルドで機能を取りこぼす
if v:version >= 902
set completeopt+=fuzzy
endif
# 補完のfuzzy設定を導入パッチ番号で判定する
if has('patch-9.1.0463')
set completeopt+=fuzzy
endif
# ビルドに依存する機能は機能名で判定する
if has('tabpanel')
set tabpanelopt=columns:24
endif
v:versionlongの大小比較は、ディストリが古い版へ修正を取り込んで番号が飛ぶ場合に正しく動きません。:help v:versionlong自身が「if there are gaps in the list of patches included this will not work well」と書いており、has()を使うよう案内しています。
環境別のインストール・アップデート手順
配布元ごとのVimのバージョン
2026年10月22日時点で各配布元が公表している版です。ディストリはパッケージリビジョン(2:9.1.2141-1ubuntu4.9など)が付くため、上流のバージョン部分だけを並べています。
| 配布元 | バージョン | 更新の仕方 |
|---|---|---|
| Ubuntu 26.04 LTS(Resolute) | 9.1.2141 | 版を固定し修正だけ取り込む |
| Ubuntu 24.04 LTS(Noble) | 9.1.0016 | 版を固定し修正だけ取り込む |
| Debian trixie | 9.1.1230 | 版を固定し修正だけ取り込む |
| Debian forky / sid | 9.2.0858 | 上流の版を取り込む |
| Fedora 43 / 44 | 9.2.1202 | 上流の版を取り込む |
| Arch Linux | 9.2.1178 | 上流の版を取り込む |
| Homebrew(macOS) | 9.2.1200 | 上流の版を取り込む |
| winget(vim.vim) | 9.2.1186 | 上流の版を取り込む |
| vim-win32-installer | 9.2.1217 | 公式のビルド |
Ubuntu 26.04 LTSの9.1.2141は、9.2として区切られた9.1.2148の7パッチ手前です。版番号は9.1でも、列挙型・タプル型・ジェネリック関数・Wayland対応は入っています。24.04 LTSの9.1.0016は9.2の新機能をほぼ含みません。上流の版を取り込む配布元では、版番号がそのまま修正の有無を示します。10月15日の修正(9.2.1201)を版番号の上で含むのはFedoraとvim-win32-installerで、Arch・Homebrew・wingetは次の更新待ちです。
# 新規導入
$ sudo apt install vim
# 導入済みの更新
$ sudo apt update && sudo apt install --only-upgrade vim
$ dpkg -s vim | grep ^Version
Ubuntu向けに9.2系を継続配布している公式のPPAはありません。検索で出てくるppa:jonathonf/vimは9.0.0749(2022年10月)で更新が止まっているので使わないでください。標準リポジトリより新しい版が要るならソースビルドです。
macOSとWindowsの更新コマンド
今回検証したmacOS同梱のVim 9.1.1752はNormal版で、+tabpanelも'modelinestrict'もありません。必要な機能がhas()で0を返すならHomebrew版へ入れ替えます。Windowsでgvimを含む一式が要るなら、wingetかvim-win32-installerの配布物です。wingetへの登録はvim-win32-installerのリリースより遅れます。winget-pkgsのマニフェストでは、2026年10月22日時点で安定版のvim.vimもvim.vim.nightlyも9.2.1186(10月14日登録)です。最新パッチが要るならインストーラを直接使います。
# Homebrew版を初めて入れる場合
$ brew install vim
# Homebrew版を導入済みの場合
$ brew upgrade vim
$ brew info vim | head -3
C:\> winget install --id vim.vim -e
C:\> winget upgrade vim.vim
ソースからのビルドとWayland対応の確認
Wayland対応やGUIの有無はビルド時に決まります。ディストリのパッケージがWaylandを有効にしていなければhas('wayland')は0です。ソースからビルドする場合は、GTK3とWaylandの開発パッケージ(Debian系ならlibgtk-3-devとlibwayland-dev)を先に入れておきます。
$ git clone --depth 1 https://github.com/vim/vim.git
$ cd vim/src
$ ./configure --with-features=huge --enable-gui=gtk3 --with-wayland
$ make && sudo make install
$ vim --version | grep -o -w -E '[+-](wayland|tabpanel|diff)'
--with-features=hugeは落とさないでください。FEAT_TABPANELとFEAT_VARTABSはhuge限定で、normalでは+tabpanelが入りません。+diffと+textpropはnormalでも有効です。ソースビルドに移るとディストリのセキュリティ更新から外れるので、以後はパッチを自分で追い続ける前提になります。
9.2へ上げる前に確認すべき点と、急がなくてよい場面
:help incompatible-9.2に載っている非互換な変更は「Improved/Different MS-Windows mapping support」の1項目だけです。ただし非互換の節に載らない挙動変更が:help changed-9.2と、9.2.x以降はchanged-9.3に並ぶため、既存のvimrcが無修正で同じように動くとまでは言えません。上げる前に確認するのは次の3つです。
- 既定値の移動:
history・backspace・showcmd・ruler・diffopt。最小構成で挙動が変わるので、CIやDockerではvimrcで明示する。 - モードラインの制限:9.2.0350以降、許可リスト外のオプションは黙って無視される。リポジトリのモードラインを
grep -rn 'vim:'で洗い出しておく。 - Windowsの実行ファイル検索:外部コマンドの実行時にカレントディレクトリを検索しなくなった。
:help executable()のとおりVimは$NoDefaultCurrentDirectoryInExePathを常に設定するので、この変数で従来動作には戻せない。バッチやMakefileで相対パスか絶対パスを前置する。
急がなくてよい場面もはっきりしています。Ubuntu 26.04 LTSのように9.1.2141が入っていてhas()で必要な機能が真を返す環境で、版番号を9.2に揃えるためだけにソースビルドへ移るのは損です。ディストリのセキュリティ更新から外れる代償のほうが大きくなります。逆に、Homebrew・winget・ソースビルドのように上流の版をそのまま使う環境では、9.2という版番号ではなく最新パッチに追従することが脆弱性対策そのものです。
内蔵LSPやLuaのプラグイン資産を前提にしたいなら、Vimの版を上げるよりNeovimへの移行が近道です。判断材料はNeovim 0.12系への移行手順:vim.packと内蔵LSP・自動補完の実装【0.12.6対応】にまとめています。Vim本体の基本操作から確認したい場合はVimとは|テキストエディタの使い方・基本コマンドと他エディタとの違いを参照してください。
よくある質問
Vimの最新バージョンはいくつですか?
区切りの付いた版はVim 9.2(2026年2月14日公開)です。パッチは日々積まれており、2026年10月22日時点の最新は9.2.1224です。最新のパッチ番号は公式リポジトリのタグ一覧で確認できます。
Vim 9.3はいつ公開されますか?
公開日は発表されていません。version9.txtにはversion-9.3節が「work in progress」として存在し、GTK 4 GUIの実験的サポートやポップアップの透過などが9.2.xのパッチで入っています。過去の間隔は9.0から9.1が1年半、9.1から9.2が2年1か月でした。
Windowsでgvim 9.2を入れるにはどうすればよいですか?
公式のvim-win32-installerが配布するインストーラか、wingetのvim.vimパッケージで入ります。wingetへの登録はインストーラの公開より遅れ、2026年10月22日時点でwingetは9.2.1186、vim-win32-installerは9.2.1217です。最新パッチが要るならインストーラを直接使います。
Vim 9.2で設定ファイルの置き場所は変わりますか?
Unix系では$XDG_CONFIG_HOME/vim/vimrc(既定は~/.config/vim/vimrc)も読まれるようになりました。ただし~/.vimrcや~/.vim/vimrcがある環境ではそちらが優先されるため、XDG側へ移すには既存のファイルを退避します。XDG側が使われると'runtimepath'と'packpath'も~/.config/vim基準に組み替わります。
Vim 9.2とNeovimのどちらを選ぶべきですか?
設定言語がVim9 scriptで完結し、SSH越しの編集環境を標準パッケージで確保したいならVim 9.2です。内蔵LSPやTreesitter、Luaのプラグイン資産を前提にするならNeovimが向いています。Neovim側の基本操作はNeovim(nvim)の使い方|基本操作・init.lua設定・プラグイン・LSP【0.12.6対応】で扱っています。