你可以用一个小包来解决这个问题。这是我的尝试:winfinder
在Sublime 3包文件夹中创建一个名为“ ”的文件夹(在Mac上,这将是~/Library/Application Support/Sublime Text 3/Packages/winfinder
)。
接下来,main.py
使用以下内容在该文件夹中创建一个文件:
import sublime
import sublime_plugin
class WinFindCommand(sublime_plugin.TextCommand):
def search(self, search_string):
l = []
for w in sublime.windows():
for sh in w.sheets():
fn = sh.view().file_name()
if fn is not None:
if search_string.lower() in fn:
l.append(fn + "\n")
if len(l) > 0:
v = sublime.active_window().new_file()
v.set_name("SearchResults")
v.run_command("insert",{"characters": str(len(l)) + " matches:\n\n"})
v.run_command("insert",{"characters": "\n".join(l)})
else:
sublime.message_dialog("No match found.")
def run(self, edit):
w = sublime.active_window()
w.show_input_panel("Search text", "", self.search, None, None)
现在我们需要一种方法来调用功能。这是通过创建main.sublime-commands
在同一文件夹中命名的文件来完成的。内容如下:
[
{ "caption": "WindowFind: find in window title", "command": "win_find" },
]
用法
如果打开命令选项板并键入“ WindowFind
”,则应该看到该命令。按[ENTER],包将提示您在所有窗口的所有选项卡中搜索要搜索的搜索字符串。如果没有匹配项,则会显示一条消息。
如果匹配,将使用搜索结果打开新选项卡名称“SearchResults”:
3 matches:
/Users/your_user/notes/daylog.txt
/Users/your_user/Documents/2018/paychecks.csv
/Users/your_user/source/python/daily_tweets/daily.py
(搜索字符串是“ay”) - 只是在Sublime 3上测试它,有效。谢谢你的想法,这很有帮助!:-)