itochin2の日記(仮)

主に備忘録。Perl、MySQL、Unity、開発管理などについて情報を残していきたい。

sublime text 2 のプラグイン開発やってみた

秀丸でよく使ってた、編集中のファイル名を取得する機能が欲しかったので
ためしに作ってみた。
探せばあるんだろうけど、お勉強ってことで俺得ドリブン開発。

参考にしたページ

APIリファレンス
http://www.sublimetext.com/docs/2/api_reference.html

Sublime Text 2 プラグインチュートリアルのまとめ
http://qiita.com/items/a0ad69dab894ffe22e5d

やっていることは単純で、ファイルパスを取得して
「/」でパースし、最後の要素だけをクリップボードに設定するだけ。
プラグインにショートカット割り当てるのも、チュートリアル読んだらできた。
区切り文字は「/」固定。Windowsは知らない( ´ー`)。


ファイル名取得プラグインって事で、名前はそのまま。

GetFileNameCommand.py
import sublime, sublime_plugin

class GetFileNameCommand(sublime_plugin.TextCommand):
	def run(self, edit):
		# self.view.insert(edit, 0, "Hello, World!")
		#self.view.insert(edit, 0, sublime.installed_packages_path())
		full_path = self.view.file_name()
		# undef check
		if full_path != None:
			str_list = full_path.split('/')
			sublime.set_clipboard(str(str_list[ len(str_list) - 1 ]))

コメントアウトされているのは、実験した残骸。

キーバインドの設定
{ "keys": ["super+^"], "command": "get_file_name" },

キャメルケースをバラしてCommand除外したものをコマンド名として認識するみたい。
設定が「super+^」なのは、昔サクラエディタ使ってた時の名残。

使いドコロ

ファイルをコピペ&修正して実行した時に

Can't locate object method "%s" via package "%s"

とか出て「あー、パッケージ名の修正すんの忘れてたわー」って時に
ショートカット一発で修正できる!

感想

Pythonの拡張子が「*.py」とかundef的なキーワードは「None」だとか
新しい知識を仕入れることが出来てよかった。