在文件中的特定范围内搜索文本? (升华)

时间:2013-11-11 10:16:15

标签: search scope editor sublimetext

我知道sublime文本将源代码分类到不同的范围。特别用于语法高亮。 (您可以使用Ctrl + Alt + Shift P或各种插件显示当前范围)

但是你也可以搜索/在一个范围内吗?

1 个答案:

答案 0 :(得分:2)

不幸的是,ST2或ST3内置的功能不允许将搜索限制在特定范围内。如果您了解Python,使用functions sublime.View.find()sublime.View.find_all()编写插件应该不会太难,通过sublime.View.scope_name()过滤结果,尽管您需要将Region返回的find()折叠为单个点,以便传递给scope_name()

如果您不是插件编写类型,则可能需要查看ScopeHunter和/或ScopeAlways插件,这些插件可通过Package Control获得。我将ScopeHunter功能绑定到弹出具有当前范围的面板的组合键:

[
    // ScopeHunter
    { "keys": ["ctrl+alt+shift+s"], "command": "get_selection_scope" }
]

键盘密集度稍低的方法是使用ScopeAlways,它在状态栏中显示当前范围:

ScopeAlways

通过这种方式,您可以浏览查找结果并立即查看它们属于哪个范围。要进行设置,一旦从Package Control安装了插件,请打开Preferences -> Package Settings -> ScopeAlways -> Settings - User并添加以下内容,以便在Sublime启动时启动它:

{
    "start_on": true
}

保存文件,重新启动Sublime,享受所有范围的好处。