使用Sublime Text插件在当前文件中搜索和替换

时间:2013-08-07 14:50:02

标签: python sublimetext2 sublimetext

我正在尝试将Sublime Text构建系统移植到插件中。

构建系统将接收当前文件并使用以下代码进行处理:

for line in fileinput.input(inplace=1):
    sys.stdout.write(makeReplacements(line))

现在,在插件语法中,我认为获取当前文件内容的方式是:

input = self.view.substr(
  sublime.Region(0, self.view.size())
)

但是现在我不确定我应该怎么做下一次操作。

for line in input(inplace=1):

如何在文件中即时替换,然后保存?

2 个答案:

答案 0 :(得分:1)

我不认为Sublime Text插件API可以保存缓冲区,但您可以使用sublime.View class中的file_name()方法并直接使用该文件。

如@MattDMo所述,可以使用view.run_command('save')保存文件。

如果您的旧版本文件使用该文件名,则可能更容易使用文件名。

答案 1 :(得分:0)

如@RazerM所述,第一个参数必须是文件路径。所以对于我的例子,这将有效。

for line in fileinput.input(self.view.file_name(), inplace=1):
  sys.stdout.write(self.makeReplacements(line))