我以为会:
window.run_command("find_all", {"pattern": "a"})
找到所有" a"当前缓冲区中的字符(我的意思与使用"查找所有"来自查找面板的效果相同;最后选择缓冲区中的每个" a"字符),但它什么也没做。
(我测试用类似的东西替换它:
window.run_command("move", {"by": "lines", "forward": True})
工作,所以我至少得到了代码的上下文。)
答案 0 :(得分:1)
根据Sublime Text 2 API docs(ST3中也一样),find()
和find_all()
是sublime.View
的方法,所以你应该打电话它们位于view
上,而不是window
上。这是一个示例插件,用于搜索和选择所有出现的python
:
import sublime
import sublime_plugin
class HighlightPythonCommand(sublime_plugin.TextCommand):
def run(self, edit):
count = 0
for rgn in self.view.find_all('python'):
self.view.sel().add(rgn)
count += 1
sublime.status_message('Added ' + str(count) + ' regions.')
将其保存在Packages/User
目录中后,您可以使用
view.run_command("highlight_python")
要搜索≡
个字符,请尝试以下版本:
import sublime
import sublime_plugin
class HighlightTripleEqualsCommand(sublime_plugin.TextCommand):
def run(self, edit):
search = unichr(0x2261) # your character in hex
self.view.sel().clear() # clear any existing selections - ideally we'd
# save them and reinstate them afterwards...
count = 0
for rgn in self.view.find_all(search):
self.view.sel().add(rgn)
count += 1
sublime.status_message('Added ' + str(count) + ' regions.')