如何在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>
Docs对我来说不是很清楚。
答案 0 :(得分: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)
答案 1 :(得分:6)
我对文档的含义的理解是这样的:
听起来sel()
对象的sublime.View
方法返回一个sublime.Selection
对象,它是一个区域的容器 - 所以你应该能够迭代它的内容(区域)它包含)或使用[]
操作索引它们。
您可以通过调用sublime.Region
对象的Selection
方法获取substr(region)
中与每个sublime.View
相关联的文字。这是有道理的,因为这个编辑器允许多个同时选择 - 其中一个较酷的功能,恕我直言。
希望这有帮助。
答案 2 :(得分:1)
在控制台中使用它,然后在python中追加 view.substr((view.sel())[0])