Sublime文本片段范围

时间:2014-12-08 21:26:41

标签: sublimetext3 code-snippets

有很多Sublime文本片段包存在 - 我看到的一个问题是,如果我想在文件类型中使用这些预定义的片段而不是它们所定义的范围,则意味着要编辑每个片段并更改scope参数包含xyz文件类型。

例如,此jQuery包中的每个片段仅限于.js文件范围以使用片段,但我大多只需要在.cfm文档类型中使用这些片段。

https://github.com/SublimeText/jQuery

是否有某种方法可以自动更改此类软件包的代码段范围,而不是打开每个代码段并修改其范围?

谢谢!

1 个答案:

答案 0 :(得分:0)

为此答案假设Sublime Text 3(OSX)

我怀疑有一个偏好功能可以在这里提供帮助,所以我认为最好的解决方案是通过一个简短的脚本来自定义包,该脚本用每个文件中的新参数替换scope参数。在您的代码段文件的目录中:

sed --in-place=.tmp 's:<scope>source.js</scope>:<scope>source.js,source.cfm</scope>:g' *

注意:

  • 这将替换目录中文件中每次出现的<scope>source.js</scope>
  • 这会附加新范围。如果您不希望它在js个文件中工作,请在第二个source.js,后删除:
  • 使用GNU sed,对于OSX sed,您可能需要不同的标志
  • 原始文件存储到*.tmp,您可以在完成后将其删除。
  • 我使用备用正则表达式分隔符:来避免与xml标记冲突。
  • 调用source.cfm的范围可能有不同的标签,请从控制台的cfm文件中检查,运行此命令以查看当前范围标签:

    view.run_command("show_scope_name")
    

引用How can I replace a string in files