api:如何从对象sublime.Selection中获取所选文本

Max*_*mov 3 python plugins sublimetext sublimetext2 sublimetext3

如何在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)
Run Code Online (Sandbox Code Playgroud)

我的代码抛出错误:

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

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

这个插件必须如下工作:当我在视图上调用它时...

崇高的文字选择

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

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

对我来说,文档不是很清楚.

Max*_*mov 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)
Run Code Online (Sandbox Code Playgroud)


mar*_*eau 6

我对文档意味着什么的理解是这样的:

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

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

希望这可以帮助.