経緯
ArchLinuxでUnityとneovimを連携しようと思ったら少し詰まったので
環境
- ArchLinux(Hyprland)
- Neovim(Lazyvim)
- Unity(AUR版)
インストール
- neovimをインストール
- AUR版UnityHubをインストール
- nvim-unityをUnityにインストール
- パッケージファイルをいじる
- Unity側の設定
1.neovimをインストール
neovimをインストールします。
方法は複数あるようですが、どの方法でも大丈夫だと思います。
pacmanの場合
sudo pacman -S neovim
AppImageの場合
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.appimage
chmod u+x nvim-linux-x86_64.appimage
./nvim-linux-x86_64.appimage
2.AUR版UnityHubをインストール
AUR版というのを初めて聞いたのでGPTに聞いたところ
「AUR版」というのは、Arch Linux の AUR (Arch User Repository) にあるユーザー提供パッケージを指して「公式リポジトリ版」と区別するときによく使う言い方です。
🔹 AURとは
Arch User Repository (AUR) は、Arch Linux ユーザーが作ったパッケージビルド用のスクリプト(PKGBUILD)を共有する場所。
公式リポジトリにないソフトウェアをインストールしたいときに使われます。
AURのパッケージは基本的にソースコードやバイナリを取得して、自分の環境でビルドしてインストールする仕組みです。
🔹 「AUR版」とは?
たとえば同じソフトウェアでも:
公式リポジトリ版:Arch Linuxの公式メンテナが管理している安定版
AUR版:ユーザーが管理しているパッケージ(最新版や派生版が多い)
例:
firefox(公式リポジトリ版)
firefox-beta-bin(AUR版:Mozillaが配布するバイナリをインストールするもの)
firefox-nightly(AUR版:開発中の最新版をビルドするもの)
🔹 利用時の注意
公式リポジトリと違って動作保証はなく、自己責任
セキュリティリスクやビルド失敗の可能性がある
多くの場合、yay や paru などの AURヘルパーを使って簡単にインストールできます
👉 まとめると、AUR版 = ユーザーが作った非公式パッケージ(Arch User Repositoryにあるもの) です。
...らしいです。
使っているとファイル参照でエラー落ちするバグ(解決済み)があったりしますが基本的に安定しています。
インストール方法は
yay -S unityhub
でインストールできます
3.nvim-unityをUnityにインストール
neovimとUnityを連携するには.csproj・.slnの生成やExternal Toolsの設定など面倒な手順がありますが、nvim-unityはボタン一つでそれらの操作を行ってくれます。
しかし、Linuxの対応がやや雑なので自分でコードをいじる必要があります。
プロジェクト毎にクローンして編集するのは大変なのでディスク上にgitリポジトリをクローンして、それをパッケージマネージャから読み込ませる方が楽だと思います。
まずはgitリポジトリをcloneします
mkdir unity-nvim #ファイル名は何でも大丈夫です
git clone https://github.com/apyra/nvim-unity.git
UnityでWindows->PackageManager->Add package from diskでクローンしたリポジトリのpackage.jsonを選択します。
次にslnファイルを生成するため必要なのでにdotnetをインストールします
sudo pacman -S dotnet-sdk dotnet-runtime
リポジトリに付属しているAppImageを取得します
https://github.com/apyra/nvim-unity/releases/latest/download/nvimunity-linux.AppImage
AppImageを展開して中のshファイルを取り出します
./nvimunity-linux.AppImage --appimage-extract
squashfs-root/AppDir/usr/bin/nvimunity.shをテキストエディタで開いてSOCKETの中身を以下のように変更してください
- SOCKET="/tmp/unity2025.sock"
+ SOCKET="/home/username/.cash/nvimunity.sock"
nvimunity.shをneovimで開いている場合windowsの改行コードが混じってしまうため
:set ff=unix
を実行してから保存してください
cd /opt
#opt下にnvimunityディレクトリを作成する
#後述するUtils.csのfallbacksにディレクトリを追加すれば他でもOK
sudo mkdir nvimunity
cd nvimunity
mv ~/appimageDirectory/squashfs-root/usr/bin/nvimunity.sh
chmod +x nvimunity.sh
4.パッケージファイルをいじる
まずNeovimPreferences.csの
private static Dictionary<string, string> availableTerminals = new Dictionary<string, string>
{
["ghostty"] = "", // Binary
["xdg-terminal-exec"] = "xdg-terminal-exec -e \"{0}\"",
// More terminals can be added
};
に使っているターミナルの実行コマンドを追記します。私が使っているのはkittyなので
private static Dictionary<string, string> availableTerminals = new Dictionary<string, string>
{
["ghostty"] = "", // Binary
["xdg-terminal-exec"] = "xdg-terminal-exec -e \"{0}\"",
["kitty"]="kitty -e {0}"
// More terminals can be added
};
となります。
Utils.csのfallbackPathsにディレクトリを追加すればnvimunity.shをopt下に置く必要はありません
string[] fallbackPaths = new[]
{
"/usr/bin/nvimunity",
"/usr/local/bin/nvimunity",
"/opt/nvimunity/nvimunity.sh",
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads", "NvimUnity.AppImage"),
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".local/bin/nvimunity"),
"/Applications/NvimUnity.app/Contents/MacOS/nvimunity"
};
5.Unity側の設定
ここまで来たらあとはGUI操作だけです
Edit->Preferenceを開き
NeovimSettingから先程設定したターミナルアプリを選択してください
ExternalToolsでNeovim Code Editorを選択してください。
Regenerate project filesで.csprojと.slnファイルを生成します。
csファイルをダブルクリックしてneovimが開けば成功です。
もし一瞬だけ出現して消えるときは~/.cache/nvimunity.sockがないか確認して、あれば削除してみてください。