Sublime编辑器插件记住变量

3 投票
1 回答
1152 浏览
提问于 2025-04-17 20:13

我正在写一个Sublime Editor 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 个回答

4

一种实现这个的方式是把它设为全局变量。这样你就可以在任何函数里访问这个变量。这里有个相关的问题可以参考。

另一个选择是把它添加到类的实例中。通常是在类的 __init__() 方法里进行设置。这个方法在类的对象被创建时就会运行。想了解更多关于 self__init__() 的信息,可以查看这个讨论。下面是一个基本的例子。

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

这样你就可以在创建类对象后访问这个变量。比如说 MyCommandObject.thevariable。这些变量会一直存在,直到调用它们的窗口关闭为止。

撰写回答