ChatGPT解决这个技术问题 Extra ChatGPT

如何防止 Visual Studio Code 总是重新打开以前的文件或文件夹?

Visual Studio Code 似乎总是记得我的会话并重新打开我上次使用它时打开的文件和/或项目。从提供文件或文件夹的命令行运行它时,它显然行为正确,但是从任务栏快捷方式打开时,我希望它默认为空环境。

有没有办法改变这种行为?

如何??我的 VSCode 从不记得以前的会话。它始终以全新的 Untitled-1 标签打开。它让我发疯
@Green 目前,如果您打开了文件夹/工作区,它只会记住以前的文件。所以只需打开任何随机文件夹(我选择了我的桌面文件夹),现在它会记住会话之间的任何文件,即使是那些不在该文件夹中的文件。
我的一个大胖+1,因为这个问题实际上表明VS代码可以恢复以前的会话。 XD 同样就@Cardin 所说的情况而言,情况发生了变化。我在 Win10 上运行了最新的 VS 代码,设置 "window.reopenFolders" : "all" 会打开每个文件,无论它是否在当前活动目录中。可悲的是,由于所有“活动目录=工作区”,VS 代码似乎仍然不支持拥有多个活动目录。
@rbaleksandar 那仍然是负面的。从 1.11.2 版开始,VS Code 不会重新打开现有的非脏文件,即使使用 "window.reopenFolders" : "all" 也是如此。要进行测试,1) 转到 File>Close Folder,2) 将任何随机文件拖放到 VS Code,3) 转到 File>Exit,4) 重新启动 VS Code,5) 注意你再次得到一个空白的 VS Code 编辑器。为了恢复会话,您需要打开一个活动目录。只要您有一个活动目录,任何会话,无论文件位置如何,都会被记住。顺便说一句,您可以安装 Project Manager 扩展以在多个活动目录之间跳转。
请注意,you can lose work with this feature,至少在 v1.19.3 中。

g
ghlecl

您还可以进入设置并使用以下内容:

“window.reopenFolders”:“无”

当您关闭编辑器时,它不会重新打开您正在处理的文件夹。其他选项是 one(默认)和 all

编辑 2017-11-09:

该选项现在在最新版本中已更改。

"window.restoreWindows": "none"

请参阅Mathieu DOMER's answer

编辑 2018-09-12:

与此相关的另一个设置是 hotExit 设置。这已在 this 对相关问题的回答中进行了讨论。为了防止重新打开和记住未保存的文件,您可以将其设置为:

"files.hotExit": "off"

但是根据我所做的测试,当 window.restoreWindows 设置为 none 时,不需要这样做。我还没有测试所有可能的组合,所以 YMMV。

要回答评论中的问题,要编辑设置,您必须打开设置文件。可以找到一些文档here(至少在我写这篇文章的日期)。

编辑 2022-03-16:

如果您更喜欢使用 GUI 来更改设置,请参阅 D'Arcy Rittich's answer


我正在将接受的答案更改为这个答案,因为我觉得设置方法比命令行开关更好,它只影响一个快捷方式。
文件夹?我不使用文件夹。只有文件怎么样?
我没有 window.reopenFolders 作为设置选项。相反,我有 window.restoreWindows
可能会惹恼一些人的事情:如果 VS Code 包含一个带有未保存文件的选项卡,它仍然会恢复工作区。
当我使用 code . 命令打开文件夹时,这对我不起作用。总是恢复打开的编辑器,我受不了
D
D'Arcy Rittich

在 VS 代码中:

对于 Windows/Linux Ctrl+,(或选择文件/首选项/设置)打开设置页面。

对于 Mac ⌘+,(或选择代码 -> 首选项 -> 设置)打开设置页面。

然后在 搜索设置 输入中输入 restoreWindows 以过滤此设置。将其设置为 none 并重新启动 VS Code。

https://i.stack.imgur.com/TccTQ.png


完美运行
这应该被标记为答案,在 JSON 设置失败后我尝试这个并且它有效!谢谢先生!
K
Kirk Woll

随着最新的更新,参数似乎已经改变,现在使用:

"window.restoreWindows": "none"

B
Benjamin Pasero

您可以将 -n 选项添加到 VS Code 的启动中,它将始终以一个空窗口开始,而不是恢复您之前的会话。


该选项确实存在(code --help 显示 -n, --new-window Force to open a new window.),但它仍会重新打开所有以前的窗口。我认为它只意味着在程序已经运行时做一些有意义的事情。
启动在哪里?我找不到在哪里添加-n。是文件吗?我可以通过设置访问它吗?
只有这在 MacOs 上对我有用:“code -n ~/myFolder/myCodeFolder”
S
Sampath

2018 年 12 月 1 日

这对我有用。即"C:\Users\Sampath\AppData\Local\Programs\Microsoft VS Code\Code.exe" -n

https://i.stack.imgur.com/tcUve.png


V
Vatsal Shah

下面为我工作

右键单击快捷方式并根据屏幕截图将 --disable-gpu 添加到目标。

https://i.stack.imgur.com/SYKnG.png


这对我来说适用于常规 vs 代码和 vs 代码内部人员
W
Wak Joko

对我来说,当我试图关闭我不小心编辑了 1000 个文件并想忽略保存所有文件的“脏”未保存文件时,以上都不起作用。

我的解决方法是将此行添加到 settings.json 中:

    "files.hotExit": "off"

打开 vscode,关闭 vscode,然后单击确认按钮关闭所有文件而不保存。

然后打开 vscode 和繁荣.. 不再显示未保存的文件。


您在哪里找到 settings.json
@CB_Ron 你可以在这里找到你的 settings.json 文件:code.visualstudio.com/docs/getstarted/…
K
Khaled Alam

如果 "window.restoreWindows": "none" 不能解决问题,
然后尝试以 root 身份运行代码 -> sudo code --user-data-dir 代码文件并在没有 root 的情况下正常重启代码。


u
user14756878

对我来说,唯一有效的解决方案是转到解决方案根目录并删除 .vs 文件夹。


通过“解决方案”,我假设您的意思是 Visual Studio?因为问题是针对 Visual Studio Code。
M
Murali kondapi

我通过下载最新更新重新安装了 Visual Studio Code。我不必卸载以前安装的代码。现在对我来说没问题。