从崇高的文本区域中抓取文本

时间:2017-11-24 07:26:18

标签: sublime-text-plugin

我是创建Sublime Text 3插件的新手,我正在尝试了解所提供的插件API。我希望能够“抓住”我用鼠标突出显示的文本并将其移动到其他地方。有没有办法使用Sublime Text Plugin API做到这一点?

到目前为止,我所做的就是能够创建一个完整的区域:

allcontent = sublime.Region(0, self.view.size())

我试图抓住该地区的所有文字并将其放入很多文件中:

logfile = open("logfile.txt", "w")
logfile.write(allcontent)

但当然,由于日志文件在运行后为空白,因此失败。

我查看了谷歌并没有很多文档,除了非官方文档,我找不到抓取文本的方法。也没有很多这方面的教程。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

a Region只表示文本区域(即从位置0到位置10),并且不依赖于任何特定视图。

要从视图的缓冲区中获取基础文本,您需要以区域作为参数调用view.substr方法。

import os
logpath = os.path.join(sublime.cache_path(), 'logfile.txt')
allcontent = self.view.substr(sublime.Region(0, self.view.size()))
with open(logpath, 'w') as logfile:
    logfile.write(allcontent)
print('written buffer contents to', logpath)

要获取第一个选区所代表的区域,您可以使用self.view.sel()[0]代替sublime.Region(0, self.view.size())