実行のあるクラスblahtestCommand(sublime_plugin.ApplicationCommand)
がありますが、失敗します。
別のクラス、私はsublime_plugin.TextCommmand)
作品を持っています。
実行定義がどのように見えるべきかについて、私は少し困惑しています。私はJavaを知っています(10年前にOOPプログラミングを行ったことをよく覚えています)が、Pythonはほとんど知りません。(したがって、クラスがパラメータを取ることについてはよくわかりません.Javaにはなかったので、「拡張」-継承-または「実装」に少し似ていると弱い推測をします)。
また、 ST2 API ドキュメントsublime_plugin.TextCommand
で、クラスに のパラメーターがある場合、def run の行は次のように表示される def run(self, edit)
のに対し、クラスにパラメーターがある場合 sublime_plugin.ApplicationCommand
、def run は次のように表示さ れることを誰かに伝える内容を特定しようとしています。何を知っています。(それはさらに大きな謎です)
ここで は classではview.run_('......')
機能しないことに注意してください。blahtest
コンソールにエラーはまったく表示されません。プラグイン -whatever.py は正常にロードされています。したがって、一方のクラス run メソッドは実行されますが、もう一方は実行されません。blahtestCommand はロードします。def run と class blahtestCommand の間に行を挿入して「123456789」を出力すると、whatever.py を保存するとすぐに出力されます。view.run_command('blahtest') を実行したときに run メソッドが呼び出されないだけです
import sublime, sublime_plugin
class blahtestCommand(sublime_plugin.ApplicationCommand):
def run(self):
print "aaaaaaaaaaa"
class butthiswillworkCommand(sublime_plugin.TextCommand):
def run(self, edit):
print "bbbb"
>>> view.run_command('blahtest') >>> view.run_command('butthiswillwork') bbbb
完全な奇妙な運によって追加さ れました WindowCommand で動作させることができました
window.run_command('saef4',{"string":"abcd"})
, {"keys": ["ctrl+s", "ctrl+d"], "command": "saef4", "args": {"string": "abcd"} }
class saef4Command(sublime_plugin.WindowCommand):
def run(self,string):
print "uabcccc"
崇高なAPIクラスで「実行」を実行することに関して、この質問を将来さらに更新する可能性があります。