我有这个代码
import sublime, sublime_plugin
class EventDump(sublime_plugin.EventListener):
def onLoad(self, edit):
print "dffdffdfffdfddfff"
print view.fileName(), "just got loaded"
def onPreSave(self, edit):
print self.view.fileName(), "is about to be saved"
def onPostSave(self, edit):
print self.view.fileName(), "just got saved"
def onNew(self, edit):
print "dfdfdfdfdfdff"
print "new file"
def onModified(self, edit):
print view.fileName(), "modified"
def onActivated(self, view):
print view.fileName(), "is now the active view"
def onClose(self, view):
print view.fileName(), "is no more"
def onClone(self, view):
print view.fileName(), "just got cloned"
我是从此页面获得的,该页面的代码有些过时了,但在这里我将其从sublimeplugin修改为sublime_plugin,这样它就不会过时,可以编译(我的意思是保存并加载!)而不会出错。而且我还进行了另外一两个调整(例如“编辑”,我认为在那里甚至更错了)。我的版本加载没有错误。
但是我无法执行它。
我想要这样,当我执行file..new时,文本将打印到控制台。从而表明该事件正在被触发。但这不是那样。
我想要有关何时启动升华和何时打开文件的事件。
最终,我想将文件名写入文件。但是我无法获得任何指示,也没有任何东西打印到控制台上,表明该事件已被触发。
另外,如果有某种msgbox很好,以防万一控制台不可见,但这是一个附带的东西,可以帮助我查看事件正在被触发
鉴于Matt的回复,现在可以进行UPDATE罚款-根据Matt的回复和ST2文档,我现在更新了代码,因此每个函数都是如此。我没有错误加载它,并触发了事件,并且正在打印文件名。好了,做完了!
def on_post_save(self, view):
print "done on_post_save"
print "filename is: "+str(view.file_name())
def on_new(self, view):
print "done on_new"
print "filename is: "+str(view.file_name())
请查看Sublime Text 2 API文档,特别是有关的部分sublime_plugin.EventListener
。您所指向的链接指向ST1 API。如果您有兴趣使用使用Python 3.3的ST3,只需2
将URL中的更改为即可3
。
尽管ST3的更改(至少以我的经验)没有像1-> 2那样完全破坏性,但ST2和ST3中的Python API都发生了重大变化。在你的情况下,方法名称已更改为on_load()
,on_new()
,on_pre_save()
,等。
最后,请确保您正在定义方法,如下所示:
def on_modified(self, view): # <- note change from "edit"
print view.fileName(), "modified"
edit
不应该在那里,因为我们在这里处理视图。有关更多的指针和解释,参考书的“插件”部分以及主要文档中的内容将对您有所帮助。但是,我发现最好的学习方法是分解并分析其他有效的插件-程序包控制绝对是您的朋友。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句