记住 Sublime Text 3 中的搜索查询

Remember search query in Sublime Text 3

有没有办法让 Sublime Text 3 记住之前在 "go to anything" 中输入的搜索查询?

我经常使用 "go to anything" 跳转到行号。如果 Sublime Text 可以记住上次输入的查询,我就不必记住行号并再次输入。

书签功能我已经很熟悉了,不是真正的替代方案。

您可以使用一个插件来保存修改后的 gotoAnything 面板的内容,然后在面板打开时将内容放在面板上。

基本插件示例:

import sublime, sublime_plugin

class GotoAnythingSaver(sublime_plugin.EventListener): # Use EventListener
    # In my case gotoAnything view id is 2.

    def on_modified(self, view): # This is called when a view is modified (text changed)
        if (view.id() == 2): # Save content
            self.content = self.get_view_content(view)

    def on_activated_async(self, view): # This is called when a view is activated
        if view.id() == 2 and hasattr(self, 'content'): # Restore content if empty
            if not self.get_view_content(view):
                view.run_command('insert', {"characters":self.content})

    def get_view_content(self, view):
        return view.substr(sublime.Region(0, view.size()))

要保存插件,请使用菜单 Tools>new Plugin,然后将其保存在给定的文件夹中(文件夹名称应为 User) , 使用文件名 GotoAnythingSaver.py.


用于再次转到同一行的示例结果:


编辑: 在 Linux Mint 和 Windows 10 上的 Sublime Text 3 build 3103 上测试。OP说这个插件让 gotoanything 功能失调,这并没有发生在我身上,但要小心。

如果有人可以测试它或帮助我,我将不胜感激,因为我不确定与 goto-anything 面板关联的视图的标识符是否始终为 2。