拡張子がなくて shebang から始まるファイルを保存すると自動で実行権限つける Sublime Text 2 のプラグイン書いた。TextMate 2 も同じ挙動っぽい。 gist.github.com/2635074
— Hiroki Katoさん (@cockscomb) 5月 8, 2012
ということで書いてみた。
ファイルに拡張子がなく、先頭が shebang (“#!”) のとき、実行権限を付ける。TextMate 2 の挙動の真似をしているつもり。
$ ./executable_file
としたいときの
$ chmod a+x executable_file
を自動でやってくれる感じ。
OS X でしか確認してないけど、Linux とかでも動きそう。Windows は知らない。
Sublime Text 2 のプラグインは Python プログラムで、たぶん内蔵している Python 2.6.x で動くように書けば良い。API ドキュメントが公開されているから、これを読んで適当に書くと良いと思う。大まかには、sublime_plugin
モジュールのクラス EventListener
、ApplicationCommand
、WindowCommand
、TextCommand
のどれかを継承して、sublime
モジュールとかを活用しつつ、Python でさっくり、という感じ。チュートリアルとかもあるけど、書いてみたらわかると思う。デバッグには sublime.message_dialog(string)
とか使えばとりあえず良さそう。
書いてみた感じとしては、思ったより簡単に書けて良かった。こんな簡単なのじゃなくてもっと大がかりなものまで書いてみないとわからないけど、とりあえず必要十分という印象。拡張性の高さはまだよく分からないけど、Python で書けるのは良い。
追記(2012/06/11)
Sublime Package Control に登録されました。
Package Control に登録したいときは、手順に従って GitHub か BitBucket にプラグインのリポジトリを作り、GitHub か BitBucket のパッケージリストリポジトリをクローンして、リストに自分のプラグインリポジトリを追加し、Pull Request を送る、という感じです。そうするとそのうち wbond さんが Merge してくれます。だいたい1週間おきくらいに Merge してくれてるような感じでしょうか。
ということで、プラグイン作って良い感じになってきたら、Package Control に登録すると便利ですね。
Change Log
- 2012-05-08
- リリース。
- 2012-05-08
chmod
コマンドを Python のos.chmod()
に変更。- 2012-05-10
- ステータスバーにメッセージを表示するように変更。