MT4のエディタでviを使おう・・知恵の泉が言っているのだよ


MT4のエディタは、比較的小さなプログラムを作成するにはそれ程苦労しませんが、少し長いプログラムを作成しようとすると結構疲れます。(ページスクロールや行間ジャンプ後 {} 対応チェックとか切った、張った、ちょい面倒な加工とかその他もろもろ)

今回は やっぱりviが好き!というのがあって環境を作ってみたので、書いておきます。

Unix環境としてCygwinで設定してみました。今回のようにUnixコマンドを使いつつWindowのアプリも実行する場合は便利です。GUIは使わないので、標準のターミナルのminttyを使用。これは日本語も使えて便利です。後grep,sort,sed,awkなんかでlog編集なんかもすぐに出来るのでデバッグがかなり楽になります。(viコマンドのみでよければ、Windows用のviコマンドでも同じような設定が出来そうですが・・・せっかくですからw)

ここから、viの設定です。

まずは、viをカラフルに、syntax情報を設定。これを一から作成すると大変ですが、以下に設定ファイルを既に作成している方がいますのでので使わせてもらいます。({}対応なんかもチェックする事等の設定も含んでいるので楽ですね)
https://github.com/vobornik/vim-mql4

また、個人的に以下の設定をmql4.vimに追加しています。


"ターミナルにファイル名表示
:set title
" タブストップを3にします。これはMetaeditorのデフォルトですw
:set ts=3
"先頭に行数表示をします。これは無くてもいいのですが気分の問題です。
:set number
"折りたたみ機能をmarkerで設定します。markerはdefaultの ’{{{’ ’}}}’です。
:set foldmethod=marker

最後に.vimrcに以下を追加しちゃえば使えます。


:syntax on

また、viを拡張すると便利なので以下の予測変換機能をインストールします。
設定は、.vimrcに以下の一行を追加して使うようにしているだけです。


let g:neocomplcache_enable_at_startup = 1
#なんかmt4に少し対応しているみたい MarketInfoが変換候補に出てくる!
https://github.com/Shougo/neocomplcache/wiki/Presentation-file

また、alias設定で以下のように設定をしておけばvi上でコンパイル&編集も比較的楽に出来ます。(もう少し楽な方法もありそうですが・・・一発でviのバッファ書き込み&コンパイル・・・これは今後の課題です・・・誰か知っていたら教えて下さいm(_ _)m)
#これCygwin環境から直接Windowsのコマンドが実行出来るのでこのような事が可能です。


#---------------.cshrc-----------------------------
# For mt4
setenv MT4PATH "/cygdrive/Z/FXCM\ MetaTrader\ 4_DEV2/"
alias mt "$MT4PATH/terminal.exe &"
alias mc "$MT4PATH/metalang.exe"
#------------------------------------------------

viのコマンドラインの例(以下の2アクションで可能です)


:w        
:!mc %

追記(2013年5月3日)
.mq4ファイルを書き込み時にコンパイルを毎回やっても良いのであれば、以下のように.vimrcに追加すれば、バッファ書き込み時に毎回コンパイルしてくれるようです。ただこれは他との兼ね合いが出るかもしれませんが今の所この設定にしています。


#---------------.vimrcに追加-----------------------------
function! s:mt4()
!mc %
endfunction
autocmd BufWritePost *.mq4 :call s:mt4()
#------------------------------------------------

これでviのコマンドラインで以下のように書き込めば、その都度コンパイルされます。(1アクション)


:w