Я работаю на Sublime Text 3 плагин, и я до сих пор небольшой скрипт, который скопировать весь текст из текущего файла в другой с помощью трех классов:Передача элемента через Sublime Text 3 Plugin
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?
- Вставить команду insert (в 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 команды(), но это не похоже на работу ...
Заранее спасибо!
, пожалуйста, избегайте задавать несколько вопросов на вопрос – MattDMo