如何 enable/disable Sublime Text 中特定项目的某些片段?

How to enable/disable certain snippets for specific projects in Sublime Text?

我在 Sublime Text 3 上工作,我已经为不同的 PHP 框架安装了许多片段,例如 Codeigniter 和 Laravel。

有什么方法可以 select 为项目启用哪些片段?如果我在 Laravel 上工作,Codeigniter 片段不应该显示,反之亦然?

不,这是不可能的。有个feature request for snippet exclusion patterns.

解决方法是将片段分成单独的包,然后使用 Package Control 即时启用和禁用包(通过命令面板 Ctrl +Shift+P).

按以下布局创建单独的包:

\
+-Packages
      +- snippets_package_name_a
      |       \-*.sublime-snippet
      +- snippets_package_name_b
      |       \-*.sublime-snippet
      ...

找到包目录:Menu > Preferences > Browse Packages...

打开命令面板:Ctrl+Shift+P

键入命令:

  • Package Control: Enable Package
  • Package Control: Disable Package

是的,这很容易做到。假设您为当前项目定义了一个 .sublime-project 文件,select Project → Edit Project,并在 "settings" 字典中添加 "ignored_packages": [] 并在数组中添加要忽略的包。这是一个例子:

{
    "folders":
    [
        {
            "follow_symlinks": true,
            "path": "/home/mattdmo/Projects/laravel_project_1"
        }
    ],
    "settings":
    {
        "ignored_packages": [
            "CodeIgniter Snippets",
            "CodeIgniter Utilities"
        ]
    }
}

命名的包只会在这个项目中被忽略。对于 CodeIgniter 项目,只需添加您的 Laravel 相关包。