20121115 fukuoka sublime0_kuroneko

Post on 20-Jul-2015

1.041 views 2 download

Transcript of 20121115 fukuoka sublime0_kuroneko

1

Sublime Text 2 ビルドにうもん

2012/11/15福岡 Sublime Text 2 勉強会-第0回-

@kuronekomichael

2

sublはテキストエディタ

•エディタなんだけど、簡単な ビルド実行の仕組みも持っています

•デフォルトでF7キー or ツールバーの[Tools]-[Build]から実行可能

今日は、この「ビルドの使い方」のはなし。

Sublime Text 2.appをビルドするって話じゃあないです。OOSでもないしね

3

やってみよう!(C言語)

[Build]を実行すると、同ディレクトリに実行ファイルができるよ

4

やってみよう!(Python)

ちょっとしたスクリプトを書いて、そのまま即実行できちゃう♪

5

何が起きているの?

》 Packages配下に、*.sublime-buildというファイルがあって、拡張子ごとのビルド設定が書いてある

》 前述のC/C++だとg++で実行形式にビルドするよう書いてあるし、Pythonならインタプリタで実行するように書いてある

6

はじめから対応している言語

》C/C++

》D言語

》Erlang

》Haskel

》Ant

》JavaC

》Make

》Python

》Ruby

つーても、コンパイラやランタイムは自前で用意する必要があります。あくまでショートカット一発で、コマンドが実行できるだけなんで

7

例)Python.sublime-build

{

// “cmd”ターミナルで実行するコマンドを指定

"cmd": ["python", "-u", "$file"],

// “file_regex”:ビルド結果からエラー行を検出するための// 正規表現を指定(optional)

"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",

// “selector”: ビルド対象をautomaticで判断するための

// 識別子を指定する(optional) ※

"selector": "source.python"

}

※識別子(例:”source.python”)とは、拡張子別に決まった固定の文字列です。

 知りたいファイルを開いてCmd+Opt+pを押すと、ステータスバーに一定時間表示されます

Macの場合) /Users/{ユーザ名}/Library/Application Support/Sublime Text 2/Packages/Python/Python.sublime-build

8

ビルド設定の自作

》 設定項目はドキュメントに詳しくかいてあります(英語)

http://docs.sublimetext.info/en/latest/file_processing/build_systems.html

・当然ビルド設定ファイルはJSONファイルなので、自作できます

・拡張子を.sublime-buildにして、Package以下に配置 (自作したものは、Package/User配下が良いです)

例) *.jsファイルはNodeで実行する(JavaScript.sublime-build)

9

でもさ 

》 ファイル単体でのビルドはいいけど、一般的にはソースファイルが沢山あってビルドするでしょー

》 例えば、拡張子はおなじでも「単体のユーティリティスクリプトとしてのjsファイル」と、「Webアプリの一部としてのjsファイル」で実行したい内容は変わってくるでしょー

》 拡張子単位でビルド設定が決まるのはイケてない!

ので

10

プロジェクトのビルド設定

》ビルドは、プロジェクト単位でカスタマイズできます

》 必要に応じて、メニューバーの[Project]-[Save Project As...]等でプロジェクトを作成しておいてください

》 [Project]-[Edit Project]等で、プロジェクト設定ファイル(*.sublime-project)を編集して、ビルド設定をカスタマイズすることができます

》 プロジェクトファイルの書き方もドキュメントがありますhttp://www.sublimetext.com/docs/2/projects.html

11

例)sample.sublime-project{

// プロジェクトフォルダ"folders": [{

// プロジェクトに含めるディレクトリパス"path": ".",// 上記path内から除外するディレクトリパターン"folder_exclude_patterns": [],// 上記path内から除外するファイルパターン"file_exclude_patterns": ["*.sublime-workspace"]

}],// プロジェクト固有の設定"settings": {

"tab_size": 4,"translate_tabs_to_spaces": true

},// プロジェクト固有のビルドシステム(既存の設定を上書き)"build_systems":[

{"name": "JavaScript","cmd": ["/usr/local/share/npm/bin/mocha"],"working_dir": "$project_path","selector": "source.js"

}]

}

12

実際にみてみましょ

実行結果

テストコードプロダクトコード

プロジェクトのファイル一式

13

まとめ

》 Sublは軽量なテキストエディタですが、

– コンパイルやインタプリタの実行がかんたんにできます

– プロジェクトにまとめて管理することでIDEのような環境を実現することもできます

– ビルド設定をいじれば、自動テストの実行なども実現できます

》 Sublで快適なTDDライフをおくれるかもね!