動作環境
まずは動作環境から。
MATLAB R2013a
MacOS yosemite(10.10.5)
vim 7.4.769
少なくとも多少のvim操作、.vimrc
の書き方などを知っていることが前提です。
なにがしたいか?
たとえば僕のような、
- matlabのエディターは編集機能が貧弱だ
- vimで書くのに慣れている
- でもvimだと補完弱いのかなぁ?
みたいな人向けの記事です。
やることは、
- vimで~.mファイルを開くためMATLABをUTF-8に対応させる
- matlab用のvim-pluginを入れる
たったこれだけです。
MATLABのUTF-8化
まずは準備
なんとMATLABはデフォルトだとエンコードがSJISです。
いまどきびっくりです。
僕はvimのエンコードをUTF-8にしているので、vimでソースコードを編集する場合はMATLABのエンコードもUTF-8に設定する必要があります。
ただし、MATLABの「環境設定」ではUTF-8をデフォルトのままでは選べません。
ということで、下記のサイトを参考に強制的にUTF-8に対応させます。
ここで、始める前に注意。
強制UTF-8化をすると、これまで書いたSJISのソースコードが文字化けします。
特に日本語がアウトです。
日本語コメントとかは全滅するでしょう。
スクリプト自体はアルファベットですから、おそらく大丈夫でしょうが。
ですが、始める前はスクリプトのバックアップ、もしくは何らかのエディターでSJISからUTF-8に変換しておくことをおすすめします。
lcdata.xml
を編集
ターミナルを開いて、
cd /Applications/MATLAB_R2013a.app/bin
とディレクトリを移動します。/MATLAB_R2013a.app/
の部分は各環境・バージョンに依存するので適宜修正してください。
このフォルダでls -a
とやるとlcdata.xmlというファイルとlcdata_utf8.xmlというファイルの両方を見つけることができます。
中身の違いは覗けばすぐわかるかと。
大事なことは、MATLABはlcdata.xmlを読んでエンコードを決めているので、オリジナルのlcdata.xmlの代わりにlcdata_utf8.xmlを読ませれば良い、ということですね。
MATLAB側で読むxmlファイルを切り替えられればいいんでしょうけど、特にそうしたコマンドは見つからないようなので「ファイル名を置きかえる」ことで対応します。
$ mv lcdata.xml lcdata_sjis.xml
$ ln -s lcdata_utf8.xml lcdata.xml
これでMATLABを再起動させればUTF-8で立ち上がります!
vim側の設定
NeoBundleを使います。
設定に関しては大量に記事が見つかると思うので他を参照してください。
" matlab用syntax
NeoBundle 'lazywei/vim-matlab'
これでmatlabのsyntax highlightに対応してくれます。
MATLAB本体の色分けよりも見やすい気がします笑
ちなみに、MATLABのスクリプトでは行頭に!をつけると、シェルスクリプトが使えます。でもバグも多いようなので微妙かなぁ。
ためしにMATLABのコマンドウィンドウで!vim
したらフリーズしたし... ^^;
ということで、vimでMATLABのソースを書くための設定記事でした!