繁体   English   中英

如何从 Sublime Text 的侧边栏中永久排除文件夹,并相对于打开的文件夹指定它?

[英]How do I exclude a folder from the sidebar in Sublime Text permanently, specifying it relative to the open folder?

我已经读过这个相关问题( How do I exclude a folder from search in sublime text 3 permanently? )但我的问题不同,因为我只想指定打开文件夹根目录下的文件夹,而不是要匹配的通用模式文件夹树中的任何级别。

在 Sublime Text 4 中,我通过文件 --> “打开文件夹...”打开了一个项目文件夹。

假设我的文件夹布局是这样的:

mainapp
├── microapp
│   └── node_modules  <== don't exclude this (keep it)
├── microapp2
│   └── node_modules  <== don't exclude this (keep it)
├── index
├── node_modules      <=== exclude this only
├── config
└── assets

我只想排除mainapp/node_modules ,而不是mainapp/microapp/node_modulesmainapp/microapp2/node_modules 我怎么做?

我猜我需要在设置中指定一个"folder_exclude_patterns"

旁注:为什么我需要这样做?
因为该文件夹中包含如此多的构建内容(随着构建的发生不断变化),它实际上导致 Sublime Text 冻结和锁定并变得无法使用。

在 Linux Ubuntu 18.04 测试。

通过纯粹的运气和坚持猜测,我想通了。 //显然是指“打开的文件夹根目录”。

如果你想看到关于//添加到官方 Sublime Text 文档和默认设置文件的信息,请在此处为我的未解决问题投票。

更新

我找到了一些官方文档: https://www.sublimetext.com/docs/file_patterns.html //功能是从 Sublime Text 4 开始添加的

如果 pattern 以//开头,它将作为项目根目录的相对路径进行比较 [在 4.0 版中添加]

然而,我的测试证明//实际上意味着“路径”根,但是如下定义。 所以,我下面的例子仍然是正确的。

1. 如果您通过文件 --> “打开文件夹...”打开文件夹,请执行以下操作:

首选项 --> 设置 --> 将此"folder_exclude_patterns"条目添加到您的用户设置 JSON 文件中:

{
    // other user settings here

    // exclude only the "mainapp/node_modules" dir
    "folder_exclude_patterns": ["//node_modules"],
    
    // other user settings here
}

同样, //表示“打开文件夹的根目录”。

注意:更改上面的用户设置将全局应用于所有 Sublime Text 实例,这可能不是您想要的。 因此,最好改用“项目”,如下所述:

2. 如果您打开文件夹并将其保存为项目的一部分,请执行以下操作:

项目 --> 编辑项目 --> 将此"folder_exclude_patterns"条目添加到您的项目设置 JSON 文件中:

{
    "folders":
    [
        {
            // path to an open folder in a project
            "path": "/path/to/mainapp",

            // exclude only the "mainapp/node_modules" dir
            "folder_exclude_patterns": ["//node_modules"],
        }
    ],
}

您可以在此处的官方项目设置文件示例 ( https://www.sublimetext.com/docs/projects.html ) 中看到, "folder_exclude_patterns"条目必须与 JSON 设置文件中的"path"处于同一级别入口。

我也首先从@smhg 的评论中了解到这一点。 谢谢!

要打开项目中的另一个文件夹,go 到项目 --> “将文件夹添加到项目...”。 在项目中打开多个文件夹后,您必须根据需要添加多个"folder_exclude_patterns"条目,如下所示:

{
    "folders":
    [
        {
            // **absolute path** to open a folder in a project
            "path": "/path/to/mainapp",
            // exclude only the "mainapp/node_modules" dir
            "folder_exclude_patterns": ["//node_modules"],
        },
        {
            // or **relative path** to open another folder in the project; 
            // the path is relative to the location of the 
            // "project_name.sublime-project" project file itself
            "path": "some_dir",
            // exclude only the "some_dir/path/to/excluded_folder" dir
            "folder_exclude_patterns": ["//path/to/excluded_folder"],
        },
    ],
}

奖励:如何在 Sublime Text 中创建项目:

要从打开的文件夹创建项目,步骤如下:

  1. 打开文件夹:文件 --> “打开文件夹...”
  2. 将其保存为项目的一部分:项目 --> “将项目另存为...”
    1. 现在您可以选择保存project_name.sublime-project文件的位置。 这是你go到上面的项目-->“编辑项目”时正在编辑的文件。 要打开项目 go 到项目 --> “打开项目...”。

也可以看看:

  1. 我打开的问题: https://github.com/sublimehq/sublime_text/issues/5234

  2. 我在 Sublime Text 论坛上写的评论: https://forum.sublimetext.com/t/a-way-to-specify-root-in-project-settings/7756/4?u=ercaguy

  3. 官方项目设置文档: https://www.sublimetext.com/docs/projects.html 这包括:

    每个 object 都必须有一个"path"键,它可能是相对于项目目录的,或者是一个完全限定的路径。

  4. 如何从 sublime text 3 的搜索中永久排除文件夹? - 解释了如何从 Sublime Text 的侧栏中排除文件或文件夹,而不是从搜索中排除文件或文件夹,例如转到任何内容在文件中查找。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM