今天微软发布了Visual Studio Code文件/文件夹编辑器。

第一个限制是它似乎是一个单实例应用程序。

是否有一种方法可以获得多个实例,或者让它同时打开多个文件夹?


当前回答

如果你把所有的JavaScript文件放在一个文件夹下的多个文件夹中,效果很好,这就是我所做的:

其他回答

如果您想打开同一文件夹的多个实例,则目前不支持。如果你想看到它的实现,请观看并为这个GitHub问题投票:支持在多个Visual Studio Code窗口中打开一个项目文件夹

我最简单的技巧是复制你的工作空间使用的.code-workspace文件,你基本上可以欺骗VSCode有两个独立的窗口。

不过,如果您想同步设置,则必须同步两个文件。在Windows 10/11中,你可以使用提升的命令提示符(不是Powershell),并使用mklink /H link Target创建一个硬链接。

我尝试使用符号链接,但它只是试图重新打开目标。通过硬链接,您可以修改工作区设置并使它们同步!

Ctrl+ Shift + N将打开一个新窗口,而Ctrl+K则释放键,按O将在一个新窗口中打开当前选项卡。然后,您可以使用菜单文件→打开文件夹,在每个窗口中有两个不同文件夹的Visual Studio Code实例。

Mac⌘+ Shift + N和⌘+ K。

有用的快捷键列表可以在这里找到。

如果你使用VS Code用于多种目的(c#, Python,数据库客户端等),用不同的颜色和主题在任务栏中分离每个实例是很有用的。

要做到这一点,你可以结合使用这些技巧:

For having separated icons in taskbar follow these steps (taken from https://www.reddit.com/r/vscode/comments/fkplzc/how_do_i_prevent_vscode_portable_copies_from/fkulriu?utm_source=share&utm_medium=web2x&context=3): Download portable version from https://code.visualstudio.com/docs/editor/portable (go to download page link and get proper '.zip' file), extract it somewhere and create a folder named 'data' in it (beside code.exe) to enable portable mode. Open directory {vscode_installation_dir}/resources/app Edit the file product.json with a text editor (VS Code/Notepad.exe/Notepad++ or whatever) Locate the key win32AppUserModelId Change its value to what you want it to be, and save the file: Now, if you run the executable, this modified copy of VS Code should remain separate from other VS Codes in the Windows Taskbar. For changing the VS Code theme color itself use Peacock (https://marketplace.visualstudio.com/items?itemName=johnpapa.vscode-peacock) For changing taskbar icon you can use https://github.com/electron/rcedit (sample use: https://www.reddit.com/r/vscode/comments/fkplzc/how_do_i_prevent_vscode_portable_copies_from/fky786v?utm_source=share&utm_medium=web2x&context=3) By pining the icons to the taskbar you can use shortcut of (Win key + Numbers) to easily open and switch between them.

最终结果:

您可以打开多个窗口(通过菜单或再次运行可执行代码)。

然而,不幸的是,目前似乎没有办法实际拥有单独的实例。例如,如果打开了两个shell,每个shell中都有不同的环境(不同的路径等),为两个shell启动代码将导致第二个窗口与第一个窗口共享相同的路径,并忽略启动它的环境。