【问题标题】:Select or Highlight all instances of a word type or color in Sublime Text 4在 Sublime Text 4 中选择或突出显示单词类型或颜色的所有实例
【发布时间】:2021-11-17 06:23:45
【问题描述】:

注意:我并不是要选择单个单词的所有实例。

我找不到选择某个单词类型的所有实例的方法,类似地,根据您拥有的文件类型的格式规则,不同的单词是如何着色的。

这是一个 SQL 文件的一些示例代码的图像。

例如,我想在整个文件中突出显示这种带红色的粉红色或淡蓝色单词的所有实例。这样我就可以将它们大写或复制它们或你有什么。

【问题讨论】:

  • 如果不编写可以访问语法高亮范围的 Python 插件,这是不可能的。

标签: sublimetext3 sublimetext sublimetext4


【解决方案1】:

从工具菜单 -> 开发者 -> 新插件...

将模板替换为以下内容:

import sublime
import sublime_plugin


class SelectByScopeSelectorCommand(sublime_plugin.TextCommand):
    def run(self, edit, scope_selector=None, last_scope_only=True, auto_select=False):
        if not scope_selector:
            scope_at_first_caret = self.view.scope_name(self.view.sel()[0].a)
            if last_scope_only:
                scope_at_first_caret = scope_at_first_caret.split()[-1]

            if auto_select:
                scope_selector = scope_at_first_caret
            else:
                self.view.window().show_input_panel('Scope Selector', scope_at_first_caret, lambda value: self.view.run_command('select_by_scope_selector', { 'scope_selector': value }), None, None)
                return

        regions = self.view.find_by_selector(scope_selector)
        if regions:
            self.view.sel().clear()
            self.view.sel().add_all(regions)
            self.view.show_at_center(self.view.sel()[0])
        else:
            self.view.window().status_message('Unable to find anything matching selector "' + scope_selector + '"')

将其保存在 ST 推荐的文件夹中,例如 select_by_selector.py(文件名无关紧要,但扩展名很重要)。

然后,在您的用户键绑定中,您可以添加如下内容:

{ "keys": ["alt+;"], "command": "select_by_scope_selector", "args": { "last_scope_only": true, "auto_select": true } },

然后,按下 Alt+; 并在 SELECT 的某处选择插入符号,它将自动选择缓冲区中具有相同范围的所有其他单词,例如 DELETEUPDATE、@ 987654328@等。或者INT上,可以选择所有INTCHAR等。

您可能会注意到,您在问题中提到的“类型”在 ST 用语中称为范围。请注意,颜色不一定具有与范围的一对一映射,具体取决于您的配色方案,因此它可能会选择比您预期的更多或更少。

您可以尝试使用键绑定,例如,通过删除所有参数来查看它有什么效果并自定义正在搜索的范围。如果您更喜欢,您也可以将其添加到菜单或命令面板中。我建议阅读ST docs 了解更多信息。

【讨论】:

  • 太棒了,非常感谢!我希望我能不止一次地支持你。这几乎完美无缺。它不做的任何事情都意味着部分的范围没有完全正确。您唯一遗漏的部分是找到键绑定的位置:首选项-> 键绑定。您将键绑定添加到右侧,即自定义用户绑定并保存。
猜你喜欢
  • 1970-01-01
  • 2017-01-08
  • 1970-01-01
  • 2015-12-09
  • 1970-01-01
  • 1970-01-01
  • 2012-04-06
  • 1970-01-01
  • 2012-08-23
相关资源
最近更新 更多