3

Textmate 的优点之一是能够将整个范围的内容通过管道传输到命令中,如下所示:

Textmate 截图

然后,您可以指定要使用的范围,例如meta.class.python或其他。

我正在尝试编写一个小插件,它将整个当前范围作为插件的输入(例如(不完全是我想要做的,但关闭),一个让你注释掉整个Python 类而不全选)

使用当前选择作为输入非常简单:

import sublime, sublime_plugin
import re

class DoStuffWithSelection(sublime_plugin.TextCommand):
    def run(self, edit):
        for region in self.view.sel():
            if not region.empty():
                changed = region  # Do something to the selection
                self.view.replace(edit, region, changed)  # Replace the selection

我已经搜索了 Sublime Text 插件 API 以寻找某种方式来做类似的事情for region in self.view.scope(),但没有成功。

那么,有没有办法将光标下当前范围的内容用作插件函数的输入?或者,更好的是,如果没有选择,则使用整个范围,但如果有选择,则使用选择。

谢谢!

4

1 回答 1

2

如果您想获取您选择的文本,以下代码片段就是一个示例。

if not region.empty():
    selectText = self.view.substr(region)
    ...

如果你想获取光标所在的文本,下面的代码片段就是一个例子。

if region.empty():
    lineRegion = self.view.line(region)
    lineText = self.view.substr(lineRegion)
    ...

要获取更多信息,请参阅http://net.tutsplus.com/tutorials/python-tutorials/how-to-create-a-sublime-text-2-plugin/http://www.sublimetext.com/docs /api 参考

于 2012-07-24T03:50:36.470 回答