我正在开发一个 Sublime Text 3 插件,到目前为止我有一个小脚本,它使用三个类将所有文本从当前文件复制到另一个文件:
import sublime, sublime_plugin
# string and new file created
s = 0
newFile = 0
class CreateNewWindowCommand(sublime_plugin.WindowCommand):
def run(self):
global s, newFile
s = self.window.active_view().substr(sublime.Region(0, self.window.active_view().size()))
newFile = self.window.new_file()
class CopyTextCommand(sublime_plugin.TextCommand):
def printAChar(self,char,edit):
self.view.insert(edit, 0, char)
def run(self, edit):
global s
st = list(s)
for i in st[::-1]:
self.printAChar(i, edit)
class PrintCodeCommand(sublime_plugin.WindowCommand):
def run(self):
self.window.run_command("create_new_window")
newFile.run_command("copy_text")
该脚本首先通过 PrintCodeCommand 运行。
我对此代码有多个问题:
- 这是“正确”的方法吗?因为用全局变量传递东西似乎有点脏。
- 有没有办法创建一个可以同时使用 WindowCommand 和 TextCommand 的类?
- 插入命令(在 CopyTextCommand 中)首先插入,有没有办法在文件末尾追加?
还有一个:如何使用 sublime.set_timeout() ?因为像这样:
# ...
class CopyTextCommand(sublime_plugin.TextCommand):
def printAChar(self,char,edit):
sublime.set_timeout(self.view.insert(edit, 0, char) , 1000)
# I want to print a char one per second
或者使用 time.sleep() 命令,但它似乎不起作用......
提前致谢 !