前置き
「EclipseならVrapper」、「IntelliJならIdeaVim」とIDEはVimな環境にする私。
Unity標準のMonoDevelopにもViモードというのがありますが、Shiftキーが効かないという致命的なバグがあり使い物にならず、
アドインマネージャーのVimAddinは入れるとMonoDevelopがクラッシュし、Unityを再インストールしても治りません。
(ユーザー\AppData
内のUnityのデータを片っ端から消したら治りました…)
Visual Studio 2017 はプラグイン入れないといけないのでプロジェクトの他のメンバーに影響がでそうなので飛ばしました。
「UnityでVimって言ったらOmniSharpだよね」が大衆の意見のようですが、
「自分ってVimのフルCUIな画面でずっと開発し続けられるほど意識高くない…」GUIも欲しいのでOmniSharpも断念
で辿り着いたのが MonoDevelop 6.3 と Just Enough Vi を使う方法。
結構手こずったので記事に残そうと思います。
OS:Windows8.1
Unity:5.4.1f1(プロジェクト指定なので古め…
参考&MonoDevelopダウンロード先
https://forum.unity.com/threads/monodevelop-unity-6-x-preview-builds.472058/
注意
- MonoDevelop-Unity 6.x Preview Builds は名前の通り正式版ではありません。 デバッグモードでstatic変数の内容が見れないなど挙動が怪しい箇所があります。
- DLLの場所を移動したりと結構無理矢理です。
- Just Enough Viは":"からの操作がなかったりと、かなり機能は少ないです。名前の通り「これだけで十分」な機能だけを持ってきたようです。使ってみて確かに「これだけあればいっか」って思いました。
MonoDevelop-Unity 6.x Preview Buildsを入れる
下記からWindows用のZipをダウンロードします。
https://forum.unity.com/threads/monodevelop-unity-6-x-preview-builds.472058/
zipを展開する前に右クリック->[プロパティ]->[全般]の下部のブロック解除というのをしないといけないそうです。
Unityの設定
Unityで[Editor]->[Preference]->[External Tools]->[External Script Editor]に先ほど展開したMonoDevelopのexeを設定。
フォーラムの説明ではこれで完了ですが、
私はUnity上でスクリプトを開くとMonoDevelopが「MonoDevelopo.Projects.MSBUild.MSBUildEvaluationContextが初期化できなかった」という内容のエラーが出てプロジェクトが開けませんでした。
フォーラムでも何人か報告してます。
原因はDLLが正しく読み込めなかったからのようです。
無理矢理ですが MonoDevelop\bin\MSBuild
以下のDLLをMonoDevelop.exeと同じディレクトリに入れたら動きました。
言語ごとに分かれてる同名のDLLはjaを移動させてます。
コピーした一覧は下記です。
- MonoDevelop\bin\MSBuild\dotnet.12.0\Microsoft.Build.Utilities.v12.0.dll
- MonoDevelop\bin\MSBuild\dotnet.14.0\Microsoft.Build.dll
- MonoDevelop\bin\MSBuild\dotnet.14.0\Microsoft.Build.Engine.dll
- MonoDevelop\bin\MSBuild\dotnet.14.0\Microsoft.Build.Framework.dll
- MonoDevelop\bin\MSBuild\dotnet.14.0\Microsoft.Build.Utilities.Core.dll
- MonoDevelop\bin\MSBuild\dotnet.12.0\ja\Microsoft.Build.Engine.resources.dll
- MonoDevelop\bin\MSBuild\dotnet.12.0\ja\Microsoft.Build.resources.dll
- MonoDevelop\bin\MSBuild\dotnet.12.0\ja\Microsoft.Build.Utilities.v12.0.resources.dll
- MonoDevelop\bin\MSBuild\dotnet.12.0\Microsoft.Build.dll
- MonoDevelop\bin\MSBuild\dotnet.12.0\Microsoft.Build.Engine.dll
- MonoDevelop\bin\MSBuild\dotnet.12.0\Microsoft.Build.Framework.dll
Just Enough Vi の設定
失敗
[Tools]->[Add-in Manager]でVimで検索してインストール ではないのでご注意ください。
上記で入れるとエラーメッセージすらないエラーになります。
原因不明、Unity向けにビルドされたときの設定が原因でしょうか?
別の方法を探すしかないです。
直接入れる
MonoDevelop Add-in Repositoryからaddinのファイル(mpackファイル)を直接ダウンロードします。
http://addins.monodevelop.com/Project/Index/214
このファイルを直接MonoDevelopで読み込む でもないのでご注意
Add-in Managerでファイルを読み込んでもうんともすんとも言わず、インストールもされません。
mpackファイルは中身はzipなので拡張子をzipにして開きます。
すると下記の二つのファイルがあります。
- addin.info
- JustEnoughVi.dll
あとはアドイン置き場 MonoDevelop\Addins
ディレクトリ内にJustEnoughVi
などの名前のディレクトリを作って上記二つを放り込むだけ...
では足りませんでした
やっぱり無理だったんだ!なんてめげずに
素直にエラーメッセージ検索したら早々に下記のサイトがでてきました。
http://chomstudio.sblo.jp/article/173128609.html
上の「ブロック解除」って結構重要なものなんですね。。。
JustEnoughVi.dll も右クリック->[プロパティ]からブロック解除です。