2

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

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

4

1 回答 1

2

不幸的是,ST2 或 ST3 没有内置功能允许将搜索限制在特定范围内。如果您了解 Python,那么使用函数 编写插件应该不难,sublime.View.find()并且sublime.View.find_all()通过 过滤结果sublime.View.scope_name(),尽管您需要将Region返回的 by折叠find()到一个点以传递给scope_name().

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

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

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

范围始终

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

{
    "start_on": true
}

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

于 2013-11-11T22:35:09.480 回答