首页 > 解决方案 > 使用 RegReplace(Sublime Text 3)在命令面板中未显示的命令

问题描述

我正在尝试使用 Sublime Text 3 中的 RegReplace 插件运行一系列命令,但我无法加载命令,也无法让键绑定工作。我不知道出了什么问题。

采取的步骤:

此代码在 AppData\Roaming\Sublime Text 3\Packages\User\reg_replace_rules.sublime-settings 中生成以下内容

{
    "replacements":
    {
        "extract_variables":
        {
            "find": ".*\\[(.*[^(<|>)]*?)\\].*",
            "name": "extract_variables",
            "replace": "\\1"
        }
    }
}

然后我在文件名 Default.sublime-commands 的同一目录下创建了以下命令

[   
    { 
        "caption": "Reg Replace: Extract ERS Variables",
        "command": "extract_ers_variables",
        "args": {
            "replacements": [
                "extract_variables"
            ]
        }
    }
]

保存所有这些后,我仍然没有在命令面板中看到该命令,并且当我尝试将其保存为键盘映射时它也没有显示。

任何帮助深表感谢

标签: regexsublimetext3sublimetext

解决方案


带着自己的烦恼来到这里,不妨记录下我愚蠢的错误。我对 JSON 一无所知。

在开发人员站点的示例中添加两个一起使用的替换时,我无法让命令显示在命令面板中。我可以得到一个键绑定来工作,但它给出了错误消息,提示找不到第一个替换......在成功使用它之后。罪魁祸首是一个格式错误的reg_replace_rules.sublime-settings文件:

//Wrong
{
    "replacements":
    {
        "rep_one":
        //stuff
    },
    "replacements":
    {
        "rep_two":
        //other stuff
    }
}

//Correct
{
    "replacements":
    {
        "rep_one":
        //stuff, comma
        "rep_two":
        //other stuff
    }
}

修复清除了错误消息,但命令仍然不会出现在命令面板中。问题在于更糟糕的 JSON,这次是在Default.sublime-commands.

//Wrong
{
    "caption": "My Command",
    "command": "reg_replace",
    "args": {"replacements": ["rep_one", "rep_two"]}
}

//Correct
[
    {
        "caption": "My Command",
        "command": "reg_replace",
        "args": {"replacements": ["rep_one", "rep_two"]}
    }
]

这对于已经正确学习 JSON 并经常使用它的人来说可能是显而易见的,也许有一天我会成为其中之一。


推荐阅读