【问题标题】:How to make sublime text 3's 'SublimeOnSaveBuild' package not compile the file named beginning with '_' prefix如何使 sublime text 3 的“SublimeOnSaveBuild”包不编译以“_”前缀开头的文件
【发布时间】:2016-12-21 09:00:26
【问题描述】:

如何让sublime text 3SublimeOnSaveBuild包不编译以_前缀开头的文件?

例如。我希望在保存这些文件时可以编译 a.scssa_b.scss 文件。但不包括名为_a.scss的文件。

我看到github中的指南是设置filename_filter配置。

所以我创建了一个 SublimeOnSaveBuild.sublime-settings.Contents:

{
    "filename_filter": "/^([^_])\\w*.(sass|less|scss)$/"
}

我使用了两个 \ ,因为它似乎会保存为格式喜欢 JSON 的 .sublime-settings 文件。

但是不行。我用JavaScript测试了一下,效果很好!

let reg = /^[^\_]\w*.(sass|less|scss)$/,
	arr = [
		'a.scss',
		'_a.scss',
		'a_b.scss'
	];
arr.forEach(function( filename ) {
	console.log( filename + '\t' + reg.test(filename) );
});

// a.scss	true
// _a.scss	false
// a_b.scss	true

谢谢!


我在joshuawinn 中找到了解决方案。但我不明白为什么我的代码不能工作......

{
    "filename_filter": "(/|\\\\|^)(?!_)(\\w+)\\.(css|js|sass|less|scss)$",
    "build_on_save": 1
}

对不起我的英语不好!

【问题讨论】:

标签: regex sass sublimetext3 sublime-text-plugin


【解决方案1】:
let reg = /^(_|)\w*.(sass|less|scss)$/,
    arr = [
        'a.scss',
        '_a.scss',
        'a_b.scss'
    ];
arr.forEach(function( filename ) {
    console.log( filename + '\t' + reg.test(filename) );
});

【讨论】:

  • 我的意思是在 SublimeOnSaveBuild 包中。当我使用\w* 时,sublime text 3 会提示错误“尝试解析设置时出错:Package\User\SublimeOnSaveBuild.sublime-settings:2:24 中的无效转义”。
  • 你的代码会控制台:a.scss true _a.scss true a_b.scss true
猜你喜欢
  • 2019-03-19
  • 1970-01-01
  • 2019-01-28
  • 2020-06-28
  • 1970-01-01
  • 1970-01-01
  • 2014-05-26
  • 2021-11-20
  • 2014-03-06
相关资源
最近更新 更多