前几天我做了一件小事,直到那时我才知道这是可能的。我像往常一样在 VS Code 中打开了一个项目文件夹,然后向窗口中添加了另一个不同的根文件夹。我一直认为,当你打开一个项目时,它只有一个顶级根文件夹,仅此而已,如果你需要打开其他地方的另一个文件夹,你将在另一个窗口中打开它。但事实并非如此!
我们在 CodePen 上进行了一种“双仓库”操作(一个是主要的 Ruby on Rails 应用程序,另一个是我们的微服务),现在我可以同时打开它们。

现在我可以在两个项目中搜索,并且基本上可以假装它是一个大型项目。
当你第一次这样做然后关闭 VS Code 窗口时,它会询问你是否要保存一个“工作区”。嗯,也许以后吧,我一直这么认为。我知道它的含义,但我太懒了,不想处理它。它会创建一个文件,我心想,我并没有真正的地方存放这样的文件。(我会避免使用仓库本身,因为我不想强迫我的系统对其他人有用。)
好吧,我终于克服了它并做到了。我把所有 .code-workspace
文件都塞到一个本地文件夹中。它们实际上作为文件非常有用,因为我可以将文件放在我的 Dock 中,并且只需单击一下即可打开我的工作区,就像我想要的那样。
自定义工作区图标
工作区文件具有如下所示的特殊小图标。

由于我把这些放在我的 Dock 中,我把它看作一个将它们制作成自定义图标的绝佳机会!这将使我非常清楚,并且使用起来会更令人愉快,因为我可能每天都会多次用到它们。
从原始图标获得一些灵感,我抓取了SVG 徽标,并将其放置在我的项目徽标的右下方。

在 macOS 上更改徽标就像在文件上“获取信息”,单击该面板中的徽标,然后粘贴图像一样简单。
现在我可以将它们保存在我的 Dock 中,并一键打开所有内容。

打开项目时启动终端命令
既然我已经为打开我的项目创建了这些非常方便的一键式图标,我就想,“如果它还能启动启动项目的命令,那该有多酷!”显然,这就是任务的用途,设置起来并不难(感谢,Andrew!)。就在该设置文件旁边,在 .vscode/tasks.json
中,我使用了以下内容。
{
"version": "2.0.0",
"tasks": [
{
"label": "Run Gulp",
"type": "shell",
"command": "gulp",
"task": "default",
"presentation": {
"focus": false,
"panel": "shared",
"showReuseMessage": true,
"clear": true
},
"runOptions": {
"runOn": "folderOpen"
}
}
]
}
每当我打开此工作区时,它都会为我启动命令 gulp
。我想你必须手动运行一次任务(终端 → 运行任务),以便它具有正确的权限,然后它就可以一直运行了。

覆盖
我不认为这专门针对工作区,但我真的很喜欢如何在项目文件夹中使用 .vscode/settings.json
之类的文件来覆盖特定项目的 VS Code 设置。
例如,在 CSS-Tricks 上,我有一个非常基本的 Sass 设置,其中 Gulp 将 .scss
预处理成 .css
。这都没问题,但我可能会在某个时候搜索选择器。我不需要在 .css
中看到它,因为我不使用原生 CSS。就像永远不会。我可以将此内容放入该设置文件中,并知道它仅适用于此项目,而不是所有项目。
{
"search.exclude": {
"**/*.css": true,
}
}
我喜欢这篇指南,它很棒,我打算尝试一下。
但是你有没有尝试过 Project Manager 扩展?我已经使用它很多年了,它很棒,因为它实际上不需要保存任何文件。
我认为你把最好的部分留到最后了 :-)
这些是我阅读过并认为“哦,这有点酷”然后忘记的功能。将它们全部放在一起,我突然在我的 git(hub|lab) 未来看到了一个私有/个人项目元项目。
嘿!作为拥有工作区文件夹的替代方案,我做了一件很棒的事情。
将你的工作区和 VSCode 特定文件保存在你的项目仓库中的 .VSCode 文件夹下。然后只需配置你的本地 gitignore 文件以忽略该目录,然后你就可以在你的工作区中访问和编辑它,并且 Git 会忽略整个文件夹,因此你不会将你的个人任务配置文件推送到你的远程主机!
我建议你尝试一下!它非常方便。如果你仍然希望在桌面上拥有这些快捷方式,你可以创建快捷方式(或者更进一步,创建指向项目文件夹中现有 .workspace 文件的软/硬链接)。
很酷的帖子!喜欢对细节的关注,毕竟小事情会带来快乐。
有用的提示 - 我喜欢将工作区放入 Dock 的想法。
感谢你抽出时间写下这些提示。像许多其他人一样,工作区之类的东西是我在使用 VS Code 进行项目时忽略的东西,但能够利用从我的 Dock 启动项目或设置自定义设置和任务之类的事情非常实用。
哇,我真的很想知道如何在 Windows 中复制每个项目的任务栏图标!
你如何将工作区放入 Mac Dock 中?
像这样
Geoff 提到的那个东西是关于向 Dock 添加空格,但你实际上并不需要这样做才能将工作区放入 Dock 中。Dock 中接受文件的区域位于分隔符右侧(或底部)。在垃圾桶所在的那一部分。
这很棒,也适合我的工作流程。我在 Apple Automatizor 中创建了一个应用程序 - 它可以一键打开我的工作区、Local by Flywheel、Github Desktop 和 Codekit。(我还创建了一个应用程序,可以在一天结束时关闭所有这些应用程序)
那么如何在 Windows 任务栏上放置带有自定义图标的工作区图标呢?
或者你是否没有讨论它,因为它只是一个快捷方式文件?
我没有讨论它,因为我从未使用过 Windows。如果你使用过并且尝试成功了,可以分享一下吗?
你可以为任何文件创建一个链接 (lnk)。链接到文件会打开默认应用程序(在这种情况下为 VSC)。只需右键单击工作区并拖动即可。然后在 lnk 的属性中选择一个图标,你就完成了。
你可以将 lnk 放入快速启动菜单中。所以,在
这是它的外观
https://ibb.co/cyLqC7k
显然,在创建图标时,你可以做得比我更好。
您可以使用命令“Code.exe C:\Project\MyProject.code-workspace”创建一个快捷方式,然后将其固定到任务栏。您可以右键单击它,选择属性并更改图标。如果您已将 vscode 固定到任务栏,则需要执行此操作,因为显示的默认图标将与 vscode 相同。
当然,您也可以在桌面上创建快捷方式,先对其进行自定义,然后再固定。重点是这很容易做到。
关于不在 CSS 中搜索,我反驳说您的构建文件可能应该只存在于构建文件夹中,该文件夹应该被 git 忽略,因此无论如何都不会出现在搜索结果中(如果选择了排除忽略文件的选项,则很可能是为了避免在 node_modules 等中搜索)。
VS Code 是否会自动不搜索 `.gitignore` 文件中的文件?这很好。在我的情况下,我提交了我的 .css 文件。我可能不应该这样做,但并非所有构建和部署流程都是理想的完美事物。
关于使用 VS Code 任务功能的“runOn”选项的提示可能是最终促使我使用工作区(我也在“嗯,也许以后”阵营中)的东西!非常方便。
就其价值而言,工作区可以拥有自己的设置,这些设置保存在 `.code-workspace` 文件中而不是 `.vscode` 子目录中,如果您不想与在同一存储库上工作的其他人共享您的设置,或者 .gitignore 方法不适用于您的设置,这可能是理想的。
如果您在 VS Code 中编辑 `.code-workspace` 文件(我的意思是将其打开到编辑器中——是否有更好的 UI 方式进入此工作区的原始 JSON 配置?我找不到它……),您可以设置您的每个工作区设置和任务,如下所示
在您首次设置此功能后,您仍然需要执行“允许文件夹中的自动任务”操作,但除此之外,它似乎运行良好,并且存储库中没有烦人的 `.vscode` 文件!
在手动运行任务(终端→运行任务)一次后,我没有收到提示更新权限。我必须从命令面板手动“允许文件夹中的自动任务”。
下次我打开工作区时,它运行得非常完美!感谢这篇文章!