LoginSignup
57
57

More than 5 years have passed since last update.

Unity 用に IntelliSense 環境を Vim で実現するメモ

Last updated at Posted at 2015-01-21

Unity の為に使い始めた Xamarin Studio のコード自動整形が駄目過ぎだし、改善の見込みも薄そうなので、Vim で頑張ることにしたメモ。

ちなみに Mac OS X のハナシ。

Mono

brew install mono

Mono 3.0.x 以上が必要。

Vim

brew install vim --with-client-server --with-lua

Vim は Python 2.7.x と Lua を有効に。またクライアントサーバ機能も有効にする。

関連プラグインとしては以下を導入:

プラグイン管理は NeoBundle を使用。

.vimrc へ一通り設定した後、Vim 起動時、下記コマンドでプラグインが自動インストールされる:

:NeoBundleInstall

omnisharp-vim

インストール

.vimrc に下記のように記述:

NeoBundleLazy 'OmniSharp/omnisharp-vim', {
\   'autoload': { 'filetypes': [ 'cs', 'csi', 'csx' ] },
\   'build': {
\     'windows' : 'msbuild server/OmniSharp.sln',
\     'mac': 'xbuild server/OmniSharp.sln',
\     'unix': 'xbuild server/OmniSharp.sln',
\   },
\ }

設定

vim-csharp

C# のシンタックスハイライト。特に設定はしなくてもいいかな。

インストール

.vimrc に下記のように記述:

NeoBundleLazy 'OrangeT/vim-csharp', { 'autoload': { 'filetypes': [ 'cs', 'csi', 'csx' ] } }

syntastic

汎用的なシンタックスチェッカー。おおかたの言語のチェックに標準対応している。今日の Vim 界隈ではデファクトスタンダードなのかな。

インストール

.vimrc に下記のように記述:

NeoBundle 'scrooloose/syntastic'

設定

.vimrc へ設定を記述。公式の推奨設定そのまま。

neocomplete.vim

コード補完の要。設定は公式サイトの設定例に OmniSharp の設定を追加しただけ。

インストール

.vimrc に下記のように記述:

NeoBundle 'Shougo/neocomplete.vim'

設定

.vimrc へ設定を記述。OmniSharp の Wiki を参考に。

vim-dispatch

OmniSharp のローカルサーバーの起動管理を自動化するのに必要。特に設定はないみたい。

インストール

.vimrc に下記のように記述:

NeoBundle 'tpope/vim-dispatch'

Automator

Unity から直接コマンドを叩く事は出来ないので、Vim を呼び出すシェルスクリプトを Automator でアプリケーション化して、それを介して Vim を呼び出せるようにする。

#!/bin/bash

VIM="${HOME}/.homebrew/bin/vim"
CWD=${1%/*}

if [ 'VIM' == $(${VIM} --serverlist) ]
then
    ${VIM} --servername UNITY --remote-send "<Esc>:cd \"${CWD}\"<CR>"
    ${VIM} --servername UNITY --remote-tab "${1}"
fi

unset VIM CWD

Unity

ちなみに Unity の API はそのままだとコード補完が効かないので、Xamarin Studio を使用する場合と同じく "Sync MonoDevelop Project" を Unity 側から一度実行しておく。

備考

Automator から直接;

vim --servername UNITY

みたいに呼んじゃうと、初回起動時見えないところで Vim サーバーが立ち上がっちゃうので、初回起動は手動でやってる。

AppleScript で Terminal 制御する方が良いかも知れないけど、TotalTerminal だと期待するような動作にならなかったので保留中。

57
57
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
57
57