2012年6月14日木曜日

SublimeText2 プラグインの作り方


え?Pythonとか分からないけど、かっこいいじゃん...自作プラグインとか

さて、SublimeText2 メニューからTools > New Pluginをクリック。

pythonで書かれたテンプレート(下記コード)がエディタの編集画面に表示されます。

import sublime, sublime_plugin

class ExampleCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.view.insert(edit, 0, "Hello, World!")

生成されたこのコードは既にプラグインとして利用でき、お約束のHello,World!をエディタの編集画面へ書き込んでくれる大変便利なプラグインでっす...(嘘


それじゃつまらん。ちょっと編集して現在時刻を表示するプラグインへ変更します。
下記コードに書き換えて保存してください。

import sublime, sublime_plugin
import datetime 
import locale 

class NowCommand(sublime_plugin.TextCommand):
def run(self, edit):
d = datetime.datetime.today()
self.view.insert(edit, 0, d.strftime("%Y-%m-%d %H:%M:%S"))

どないして実行するのかな?

自分はMacユーザです。

shift + control + @でエディタの下の方にコマンド入力欄が表示されます。
そいつに、view.run_command('now')入力。

classNowCommand → コマンド名:now

1行目に現在時刻が表示されました。Python意味不明とか抜きにして感動してみてください。

はぁ〜view.run_commandとか死ねよとか思った方へ

このコマンドをショートカットキーで実行できるように変更します。

Sublime Text2 > Preference > Key Binding Userをクリック
下記コードを貼付けてください。alt + 上にnowプラグイン?を割り当てます。

[
{"keys":["alt+up"], "command":"now"}
]

現在のカーソルの位置に時刻を表示(完成系)


import sublime, sublime_plugin
import datetime 
import locale 


class NowCommand(sublime_plugin.TextCommand):
def run(self, edit):
currPos = self.view.sel()[0].begin()
d = datetime.datetime.today()
self.view.insert(edit, currPos, d.strftime("%Y-%m-%d %H:%M:%S"))


結論、Python勉強しなくてはいけないなぁぁぁ

0 件のコメント:

コメントを投稿