woshidan's blog

そんなことよりコードにダイブ。

Sublime Text2からbuildを行ったり、build設定を変更する

先日もえんじょーいぱたーんってJavaやってたら、

急にSublime Text2の下の方にばばばばばって文字が表示されてびっくりしたのだけど、

Sublieme Text2ではcmd+Bでビルドが出来るそうです。

 

SublimeText2でJavaをコンパイル+実行 - Bたーんぶろぐ

 

しかも、ビルドのついでに実行したりも出来るそうな。

 

原因は分かりましたが、気になったのでもう少し調べてみました。

 

最初から入っているプログラムでビルド

Sublime Text2ではcmd+Bでファイルの拡張子にあわせてビルド用のプログラムや実行プログラムが呼び出されます。

何が呼び出されるかは、Tools > Build Systemから確認できます。

基本的にはSublime Textに自動で選んでもらえば大丈夫ですが、手動で設定する事も出来ます。

自分の場合最初から、このビルドプログラムとして設定されていたものは、

でした。ちょっとRubyにビルドってなんやねん、スクリプト言語じゃないんかい、ともって、ためしに

print "hello"

としたら、

hello[Finished in 0.3s]

と実行されました。ビルド用の設定ファイルがライブラリ > Application Support > Sublime Text2 > Packages > 以下の各言語のディレクトリの中に.sublime-buildという拡張子で入っているので、

実行してくれるrubyコンパイルをするJavaのそれを見比べたところ

Ruby

{
	"cmd": ["ruby", "$file"],
	"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
	"selector": "source.ruby"
}

Java(正確に言うとJavaのディレクトリの中のJavaC.sublime-build)

{
	"cmd": ["javac", "$file"],
	"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
	"selector": "source.java"
}

だったので、Javaだから、Rubyだからというよりターミナルに打ち込むときのコマンド名を書いておいたら、Sublimet Text2のターミナルに打ち込んだときと同じ結果を返してくれるということでしょうね……。

 

あー、先月書いた例の物を書き直さないと……。

それはまあいいとして。

 

 新しくビルドするプログラムを追加

Tools > New Build Systemを押すと

{
  "cmd": ["make"]
}

という拡張子.sublime-buildというファイルが出てくるので、これを

{
  "cmd": ["php", "$file"]
}

のように書き換えてライブラリ > Application Support > Sublime Text2 > Packages > Userに保存すれば、上記の場合だとphpを新しくcmd+Bで実行させることができるようになります。

 

既に入っている分の設定を変更したい

繰り返しになっている気がしますが、

各言語のSublime Text2でのビルド時の挙動設定を変えたいときは、

ライブラリ > Application Support > Sublime Text2 > Packages 以下に

各言語名のディレクトリがありますので、

そのディレクトリの中身の.sublime-buildファイルをいじればよいです。

 

phpテキストエディタから実行できるなんて、もっと早く知りたかったですね……。