在构建系统的文件名输出中使用搜索/替换

问题描述 投票:0回答:1

如何在构建系统命令中搜索/替换输出文件名?例如,如果我正在编辑的文件名为file_src,那么我希望构建系统将其输出为file_build

"shell_cmd": "my_command ${file} > ${file_name_but_search_replaced}"
sublimetext3 sublimetext
1个回答
0
投票

构建系统中的可变扩展是使用与snippet substitutions中使用的相同的基础机制执行的,即:

${var_name/regex/format_string/options}

如上面的链接所述,在代码段中,名为的变量可以是代码段字段或其他仅适用于代码段的特殊变量,例如$SELECTION。在sublime-build文件内部,代替使用build variables

如何应用取决于您的需求和所涉及的文件名。例如:

{
    "shell_cmd": "echo '$file_path}/${file_name/_src/_build/}'"
}

要记住的是,替换将应用于文件中的第一个匹配项(除非您指定将其设为全局的选项,在这种情况下,它将应用于所有匹配项),因此此处的扩展是文件,后跟文件名,并在该字段中替换。

这可以确保在路径也包含正则表达式的情况下仅修改文件名。根据可能不重要(或不希望使用)的用例,在这种情况下,您可以将其应用于$file

© www.soinside.com 2019 - 2024. All rights reserved.