[英]Sublime Text 2 plugin: capture the selected text
我正在嘗試編寫我的第一個 ST2插件(我也是Python的新手)。 我要做的是捕獲當前選定的文本。 到目前為止,這就是我所擁有的。 我以為這會將所有選中的文本保存到text變量中,但是看起來我只捕獲了選中項的開始和結束索引。 因此,如果我選擇緩沖區中的第一個字符,我的插件回調將顯示“ 01”。 我想要的是索引0和索引1之間的文本 。
import sublime, sublime_plugin
class CopyOnSelectListener(sublime_plugin.EventListener):
def on_selection_modified(self, view):
selections = view.sel()
text = ""
for s in selections:
text += str(s.begin())
if not s.empty():
text += str(s.end())
print(text)
ST2 API參考在這里 。 view.sel()
返回RegionSet
,該對象包含每個選擇的Region
。 Region.a
和Region.b
是分別指該區域開始和結束的整數。 因此,如果您的視圖包含
This is some text.
並且您選擇了text
, Region.a
將為13, Region.b
將為17。要實際獲取Region的內容,您需要使用view.substr(region)
。 以下代碼會將每個選擇的內容打印到控制台:
import sublime_plugin
class PrintSelectionTextCommand(sublime_plugin.TextCommand):
def run(self, edit):
view = self.view
for region in view.sel():
print(view.substr(region))
您可以通過使用Ctrl`打開控制台,在打開的文件制作一個或多個選項,然后運行運行
view.run_command("print_selection_text")
從控制台(假設您已將其另存為Packages/User/print_selection_text.py
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.