最近はMSYS2上のzshを使っているので、Vim上でもそれを使うことにしました。
MSYS2のインストール先がデフォルトのままなら、vimrcに記述する内容は以下のとおりです。
if has('win32') || has('win64') let $MSYSTEM='MINGW64' set shell=C:\msys64\usr\bin\zsh.exe\ --login\ -i set shellcmdflag=-c set shellxquote=\" set t_md= endif
これで、: terminalを実行すれば画面が分割されてMSYS2のシェル画面が表示されます。
なお、私はMINGW64環境を使っているので$MSYSTEMにMINGW64を指定しています。他の環境(UCRT64など)を使用する場合は$MSYSTEMに違う値を指定する必要があります。