【问题标题】:Grabbing Text from Sublime Text Regions从 Sublime 文本区域抓取文本
【发布时间】:2017-11-24 07:26:18
【问题描述】:

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

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

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

我试图抓取该区域中的所有文本并将其放入很多文件中:

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

但当然不成功,因为日志文件在运行后是空白的。

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

非常感谢任何帮助!

【问题讨论】:

    标签: sublime-text-plugin


    【解决方案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())。

    【讨论】:

    • 非常感谢!为我清理了很多
    • 如果它是相关的,请继续,否则可能会更好地发布一个新问题而不是在这里发表评论:)
    • 这个问题我已经问过了,如果你想看here :)
    猜你喜欢
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 2013-02-03
    • 2015-04-03
    • 1970-01-01
    相关资源
    最近更新 更多