Sublime Text 3:将项目列表从 folder/files 导入到 OpenRecent 列表

Sublime Text 3: import projects list from folder/files to OpenRecent list

我通过手动点击将几个项目保存在同一个文件夹中Project -> Save Project As...
我曾经使用 cmd + ctrl + p 打开 Switch Projectlist 在项目之间切换
一切正常。

但是今天,我不小心通过点击 Project -> Open Recent -> Clear Items 删除了我的 Switch Project 列表,所以我的 Switch Project 列表现在是空的...

我知道我可以通过重新打开 ALL 我的项目来添加它们。由于项目的数量很多,一个一个地加回来有点烦人。

我想知道是否有更聪明的方法为我做到这一点。
也许从文件夹或其他东西导入我所有的 *.sublime-project 文件。

谢谢

除了手动打开每个项目,我认为没有办法直接做这样的事情。据我所知,没有命令或插件端点可以让您按名称或文件名打开项目,因此无法创建插件来完成这项工作,而且 Sublime 没有能力 pre-load 包列表直接也可以。

也就是说,可以手动更新最近的项目列表,但是这是否比打开所有项目的工作更多或更少是需要考虑的事情。

如果您从菜单或命令面板使用 Preferences > Browse Packages,文件浏览器将在您的 Packages 文件夹中打开。从那里向上一级目录进入 Local 文件夹,在那里你会找到一个 Session.sublime_session 文件。

Sublime 在您退出时将其状态保存到此文件中,并在您再次启动时使用它来恢复状态。在这里您会找到所有已保存的信息,例如 windows 和打开的文件等。

更改此文件将更改 Sublime 加载的数据,因此您可以修改会话文件以设置所需的数据。您需要确保在 Sublime 不是 运行 时修改文件,否则您的更改将被忽略并被破坏。此外,在开始之前备份文件也是个好主意,以防万一出现问题。

在文件底部附近,您会找到一个名为 workspaces 的顶级密钥,其中有一个 recent_workspaces 密钥:

"workspaces":
{
  "recent_workspaces":
  [
      "/home/tmartin/local/src/OverrideAudit/OverrideAudit.sublime-workspace",
  ]
}

这是存储最近项目列表的地方,供菜单和快速切换项目命令使用。需要特别注意的是,这些条目正在命名 sublime-workspace 个文件,并且路径是绝对路径。

NOTE: On windows, the filenames stored in the session file are in a format like /C/Users/tmartin and not c:\users\tmartin; on that platform you need to make sure that you adjust the paths accordingly. As long as there is already at least one entry in the list when you look at the session file, you can easily see how to construct the paths that you need.

尽管命令和菜单项的名称不同,但您实际上是在不同的工作区之间切换。每个 sublime-project 都与一个 sublime-workspace 文件相关联,该文件充当该特定项目的专用 sublime_session 文件。此映射是 one-to-many,因为同一项目文件可以有多个工作区,允许您在多个 windows 中引用相同的路径,但具有不同的 window 布局。

虽然 Sublime 不是 运行,但您可以编辑此文件以添加所有工作区文件的完整路径;当你启动 Sublime up 时,列表将被填充(每个 sublime-workspace 文件知道它与什么 sublime-project 相关联)。

剩下的问题是是否可以快速生成文件列表,以便您可以轻松地将它们粘贴到会话文件中。