UnityでVimを使うためショートカットで便利にする(MacVimは使わない方法)
UnityでVimを使いたい(できればMacVimは使いたくない)
最近Unityをちょこちょこと触るようになったが、そろそろUnity標準のエディターである「Visual Studio」ではなくて、お気に入りのエディターである「Vim」をTerminal上でサクッと使えるようにしたいので、プロジェクトウインドウ内で便利に開きたく色々設定していたが、そのメモ。
各種バージョン情報
今回の目標はUnityのプロジェクトウインドウ内でC#スクリプトをダブルクリックし、Assetsディレクトリへディレクトリがチェンジされた状態で待機モードに入っているTerminalが起動すること。
まず、Unityのプロジェクトウインドウとは以下の部分である↓
ここで、C#スクリプトを作成でき、ダブルクリックすると通常は「Visual Studio」が起動して対象のファイルを開いてくれる。
通常は「Visual Studio」が起動する↓
公式のUnityマニュアルを参照すると、Preferencesで設定できることが分かった。[1]
設定方法
UnityのツールバーでUnityをクリック
↓
Preferencesを開く
↓
External Toolsをクリック
次にExternal Script Editorをクリックし、ドロップダウンメニューからBrowseをクリック
自身の環境で使っているTerminalアプリを選択しOpenをクリック
次にUnity - Manualを参考に
External Script Editor Args
$(File) is replaced with a path to a file being opened.
$(Line) is replaced with a line number that editor should jump to.
$(ProjectPath) is replaced with the path to the open project.
If not set on macOS, then the default mechanism for opening files is >used. Otherwise, the external script editor is only launched with the >arguments without trying to open the script file using the default >mechanism.
See below for examples of external script editor arguments.
$(ProjectPath) is replaced with the path to the open project.より、ProjectPathに置き換えられるので、これを使って引数を設定する。
具体的には以下のように入力すれば良い↓
"$(ProjectPath)"/Assets
そのほか、お気に入りのエディターがあれば各々例文スクリプトを参考に設定すれば良い。
Examples of script editor arguments
Gvim/Vim: --remote-tab-silent +$(Line) "$File"
Notepad2: -g $(Line) "$(File)"
Sublime Text 2: "$(File)":$(Line)
Notepad++: -n$(Line) "$(File)"
MacVimを使いたい場合はExternal Script EditorをMacVimに選択して、次のように引数を設定すれば良い↓
--remote-tab-silent +$(Line) "$File"
Sublime Text 2を使いたい場合も同じように、External Script EditorをSublime Text 2に選択して、次のように引数を設定する↓
"$(File)":$(Line)
設定したら、そのままPreferencesウインドウを閉じて再度ダブルクリックしてみる↓
以下のようにiTermが開き、Assetsディレクトリに移動しているはずだ。
一度ダブルクリックした後はTab+commandでの切り替えをおすすめする、なぜならUnityから例えばiTermであれば、iTermのプロセスがダブルクリックした度に起動してしまうため。
また、Unityから起動したiTerm中では、ウインドウ分割等を行ってもディレクトリパスはAssetsに維持されているのでこの点は大変便利である。
iTermからディレクトリチェンジはこれでできたが、
ついでにvimも対象ファイルに対して自動実行してくれるとありがたいのだが、これは現在調査中、
どなたか実現している人がおられましたらコメントにてご教示くださいますと幸いです。
-
Unity - Manual: Preferences https://docs.unity3d.com/2017.1/Documentation/Manual/Preferences.html ↩︎
Discussion
うまく解決できました。
こちら公開しました。