Sublime Editor插件记住变量

时间:2013-03-25 12:43:20

标签: python plugins sublimetext2

我正在编写一个崇高的编辑器2插件,并希望它在会话期间记住一个变量。我不希望它将变量保存为文件(它是密码),但希望能够重复运行命令,并且可以访问变量。

我希望我的插件可以像这样工作......

import commands, subprocess

class MyCommand(sublime_plugin.TextCommand):
  def run(self, edit, command = "ls"):
    try:
      thevariable
    except NameError:
      # should run the first time only
      thevariable = "A VALUE"
    else:
      # should run subsequent times
      print thevariable

1 个答案:

答案 0 :(得分:4)

实现这一目标的一种方法是使其成为全局变量。这将允许您从任何函数访问该变量。 Here是需要考虑的堆栈问题。

另一种选择是将其添加到类的实例中。这通常在类的__init__()方法中完成。实例化类对象后立即运行此方法。有关self__init__()的详情,请咨询this stack discussion。这是一个基本的例子。

class MyCommand(sublime_plugin.TextCommand):
    def __init__(self, view):
        self.view = view # EDIT
        self.thevariable = 'YOUR VALUE'

这将允许您在创建类对象后从其中访问此变量。这样的事情MyCommandObject.thevariable。这些类型的变量将持续到调用方法的窗口关闭。