我是创建Sublime Text 3插件的新手,我正在尝试了解所提供的插件API。我希望能够“抓住”我用鼠标突出显示的文本并将其移动到其他地方。有没有办法使用Sublime Text Plugin API做到这一点?
到目前为止,我所做的就是能够创建一个完整的区域:
allcontent = sublime.Region(0, self.view.size())
我试图抓住该地区的所有文字并将其放入很多文件中:
logfile = open("logfile.txt", "w")
logfile.write(allcontent)
但当然,由于日志文件在运行后为空白,因此失败。
我查看了谷歌并没有很多文档,除了非官方文档,我找不到抓取文本的方法。也没有很多这方面的教程。
非常感谢任何帮助!
答案 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())
。