4

如何在sublime text 3插件中获取选定的文本:

import sublime, sublime_plugin

class plugin_window__go_to_relative_plugin__Command(sublime_plugin.WindowCommand):
    def run(self):            
        window = self.window
        view = window.active_view()
        sel = view.sel()
        sublime.status_message("selection: "+sel)

我的代码抛出错误:

     sublime.status_message("selection: "+sel)
TypeError: Can't convert 'Selection' object to str implicitly

view.sel()返回sublime.Selection对象。但我不知道如何从那里获取选定的文本。

该插件必须按以下方式工作:当我在视图中调用它时...

崇高的文本选择

...它应该将文本设置"dow = self.w"为变量sel

当我这样做时str(sel),它会返回<sublime.Selection object at 0x1047fd8d0>

文档对我来说不是很清楚。

4

3 回答 3

7

我对文档含义的理解是:

听起来对象的sel()方法sublime.View返回一个sublime.Selection对象,它是一个区域的容器——所以你应该能够迭代它的内容(它包含的区域)或使用[]操作对它们进行索引。

您可以通过调用对象的方法来获取与sublime.Regiona中的每个关联的文本。这是有道理的,因为这个编辑器允许同时进行多个选择——它的一个更酷的功能,恕我直言。Selectionsubstr(region)sublime.View

希望这可以帮助。

于 2013-10-31T21:24:03.663 回答
6

单选时:

import sublime, sublime_plugin

class selection_plugin__Command(sublime_plugin.WindowCommand):
    def run(self):            
        print('selection_plugin__ called')
        window = self.window
        view = window.active_view()
        sel = view.sel()

        region1 = sel[0]
        selectionText = view.substr(region1)
        print(selectionText)
于 2013-10-31T18:13:07.703 回答
1

在控制台中使用它,然后附加到 python view.substr((view.sel())[0])

于 2017-02-02T09:00:16.080 回答