如何在Sublime Text搜索功能中排除折叠的代码?
Sublime Text搜索排除折叠代码解决方案
场景1:禁止搜索匹配折叠内容时自动展开代码段
该需求可通过原生配置直接实现,无需额外插件:
- 打开Sublime Text设置页:Windows/Linux 点击顶部菜单栏
Preferences>Settings,Mac 点击Sublime Text>Settings - 在右侧用户配置文件中添加如下参数:
"auto_expand_find_matches": false
- 保存配置后立即生效,后续搜索到折叠区域的内容时不会自动展开对应代码段。
场景2:完全排除折叠代码参与搜索
原生Sublime未内置该功能,可通过自定义轻量插件实现:
- 点击顶部菜单栏
Tools>Developer>New Plugin - 替换默认生成的模板代码为如下内容:
import sublime import sublime_plugin class FindInUnfoldedCommand(sublime_plugin.WindowCommand): def run(self): view = self.window.active_view() if not view: return regions = [] pos = 0 file_size = view.size() while pos < file_size: if view.folded(pos): pos = view.unfold(sublime.Region(pos, pos))[0].end() else: line_end = view.line(pos).end() + 1 while line_end < file_size and not view.folded(line_end): line_end = view.line(line_end).end() + 1 regions.append(sublime.Region(pos, line_end - 1)) pos = line_end view.sel().clear() for r in regions: view.sel().add(r) self.window.run_command("show_panel", {"panel": "find", "in_selection": True})
- 将文件保存到Sublime默认弹出的User目录,命名为
find_in_unfolded.py - 打开
Preferences>Key Bindings,添加自定义快捷键绑定,示例如下:
{ "keys": ["ctrl+shift+f"], "command": "find_in_unfolded" }
保存配置后,按下绑定的快捷键即可触发仅在未折叠代码中搜索的功能,不会匹配到折叠区域的内容。
内容的提问来源于stack exchange,提问作者User
相关产品推荐
相关产品推荐

