在 Sublime Text 搜索中排除折叠代码

Exclude folded code in Sublime Text search

有什么方法可以从搜索中排除折叠代码。当我搜索文本并且该文本似乎在代码的折叠部分时,Sublime 总是展开该代码片段,这很烦人。我找不到任何相关设置。

您可以使用 Sublime Text 的“在选区中查找”功能 - select 所有展开的区域,然后打开查找面板并打开“在 selection 中”进行搜索.

这是一个执行此操作的插件:

import sublime
import sublime_plugin


class FindInUnfoldedTextCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        folded_regions = self.view.folded_regions()
        self.view.sel().clear()
        self.view.sel().add_all(folded_regions)
        self.view.run_command('invert_selection')
        self.view.window().run_command('show_panel', { "panel": "find", "reverse": False, "in_selection": True })

要进行此设置:

  1. 从工具菜单 -> 开发人员 -> 新插件...

  2. select模板插件代码替换成上面的

  3. 将其保存在 ST 推荐的文件夹 (Packages/User/) 中,名称如 find_in_unfolded_text.py - 文件名并不重要,扩展名很重要。

  4. 打开 ST 控制台(查看菜单 -> 显示控制台)

  5. Type/paste view.run_command('find_in_unfolded_text') 输入

  6. 输入您的搜索字符串

  7. 中提琴!折叠的文本被忽略。

作为第 4 步和第 5 步的替代方法,您可以将此新命令添加到菜单、命令选项板或为其创建快捷键。