【问题标题】:Visual Studio Code never reopens previous file or folderVisual Studio Code 从不重新打开以前的文件或文件夹
【发布时间】:2016-03-31 08:31:46
【问题描述】:

我有这个问题的完全相反的问题:Visual Studio Code always reopens previous file or folder

VSCode 似乎永远不会记住我以前打开的文件,并且总是从一个空窗口开始。我检查了我的快捷方式是否偶然有参数“-n”(这会强制这种行为),但它不存在。

有没有办法强制 VSCode 记住打开的文件和文件夹?

【问题讨论】:

  • Hot exit 已在 2016 年 11 月的版本中实现,但只有脏文件(未保存的文件)会通过截至此日期(2017 年 1 月)的会话被记住。如果您没有打开的文件夹,则在重新启动 VS Code 时不会重新打开保存的文件。此功能尚未实现,正在跟踪here
  • 这应该通过 VSCode 1.52(2020 年 11 月)和新的 window.reopenFolders=preserve 选项来解决。见my updated answer below

标签: visual-studio-code


【解决方案1】:

看起来,VsCode 只记住打开的文件,如果你还打开了一个文件夹。 没关系,如果这只是驱动器上某个位置的虚拟文件夹 - 如果您在此文件夹之外打开文件,它们也会被记住。

我不确定这是按照设计还是错误。

编辑:这是一个错误并被跟踪here

编辑 2: 总结下面的答案,现在有两个关于这个问题的设置:

Hot exit 已实现,可恢复关闭 VS Code 之前未保存的文件。 要更改此设置,请使用以下设置:

files.hotExit: "onExit"

要重新打开所有文件,请使用以下设置:

window.restoreWindows: "all"

但是发现 here 仍然存在未解决的问题。

...

【讨论】:

  • 我在 MacOS High Sierra 上使用 vs 代码。如果只是关闭窗口并重新打开,则 "window.restoreWindows": "all" 不起作用。仅当我退出并重新启动 VS Code 时才有效
  • 您能否更准确地了解“关闭窗口 - 重新打开”和“退出 - 重新启动”这两个术语?如果您的意思是“文件”菜单中的“关闭窗口”选项,对我来说,这也可以按预期工作 - 但我在 Windows 上。
  • 虽然此问题尚未解决,但一种解决方法是:将 window.restoreWindows 设置为 all,然后编写一个脚本,先启动不带 args 的代码,然后再启动带 args 的代码。例如,在 Windows 上,我编写了一个批处理文件“open-in-vscode.bat”,其中仅包含:"C:\Program Files\Microsoft VS Code\bin\code" && "C:\Program Files\Microsoft VS Code\bin\code" %*
  • 如果我关闭窗口并在命令行上使用code . 重新打开到同一个文件夹,那么旧编辑器将重新打开。不想要。
【解决方案2】:

这也适用于 VSCode 1.42(2020 年第 1 季度)意外关机(例如为操作系统更新而重新启动操作系统,或任何 VSCode 被强制终止的情况)。

请参阅 vscode/issue 12058(“定期保存 UI 状态以防止关机丢失”)和 PR 87158commit 54ab792,其中包括以下评论:

    // In some environments we do not get enough time to persist state on shutdown.
    // In other cases, VSCode might crash, so we periodically save state to reduce
    // the chance of loosing any state.
    // The window loosing focus is a good indication that the user has stopped working
    // in that window so we pick that at a time to collect state.

bpasero 添加in the issue

推送了一项更改 (#87158),它将:

  • 每 60 秒保存一次状态
  • 当窗口失去焦点时保存状态

真正的解决方法是让 Electron 提供 API 来检测 Windows 上的系统关闭情况(例如 electron/electron#15620 的建议)。

当 VSCode 获得焦点并重新启动 Windows 时,这些更改可能无济于事,但在我的测试中,当任何非 VSCode 用户界面弹出时(例如,Windows 提示应用更新)时它会起作用。
我认为这是我们目前能做的最好的事情。


关于issue 15949中提到的window.reopenFolders=alllast (Sept 2020) comment说明还没有解决。

在 VSCode 1.52 中更新 2020 年 11 月 for issue 15949

window.restoreWindows 中的选项总和将是:

  • preserve(新):所有窗口都会恢复,与 VSCode 的启动方式无关
  • all:所有窗口都会恢复,但在文件或文件夹上启动 VSCode 时不会恢复
  • folders:仅恢复文件夹,但在文件或文件夹上启动 VSCode 时不会恢复
  • one:只恢复单个窗口,但在文件或文件夹上启动 VSCode 时不会恢复
  • none:从未恢复任何窗口

我已将window.restoreWindows: preserve 推送为新选择。
all 仍然是默认设置。

见:

New setting to restore previous session windows

为现有window.restoreWindows 设置保留的新设置值允许强制在您启动 VSCode 时恢复您在关闭 VSCode 之前打开的每个窗口,即使明确要求 VSCode 打开特定文件夹或文件。

一个常见的例子是双击文件以在 VSCode 中打开它或使用终端打开特定文件或文件夹。
没有window.restoreWindows:preserve这种情况下,VSCode只会按照提示打开文件或文件夹,不会恢复任何其他窗口。


使用 VSCoe 1.60(2021 年 8 月),您还可以:

Keep editors open instead of closing when they fail to restore

到目前为止,当重新加载窗口或重新启动应用程序后编辑器无法恢复时,编辑器会自动关闭,直到找到成功加载的编辑器。

这种行为可能会导致令人沮丧的结果,即精心创建的编辑器布局和排列由于编辑器关闭而消失。

在此版本中,曾经成功打开的编辑器将不会关闭,即使它无法恢复。编辑器指出问题并提供重试操作的方法:

【讨论】:

  • 非常感谢“保留”选项(相对于“全部”)。遇到问题:当我通过打开文件打开已关闭的 vscode 时,只显示未保存的文件,未打开已保存的文件。
  • @Max 那(保留)应该确实有效。我自己使用默认的“all”。
【解决方案3】:

转到: 打开文件 --> 首选项 --> 设置并添加"window.restoreWindows": "all" 到您的 settings.json 文件。 请记住在前面的语句中添加逗号。

这将重新打开您在上次会话结束时打开的所有窗口。

【讨论】:

  • 您似乎没有阅读接受的答案,因为这是在那里解决的。
  • 语法不正确。 window.restoreWindows": "all",我需要 50 名代表才能发表评论,所以……这是唯一的方法。
  • 您的意思是,您需要 50 名代表来编辑您的帖子?我为你更正了。
【解决方案4】:

所以我在功能上也需要它,目前只是

"window.restoreWindows": "none",

在设置中。

控制重新启动后如何重新打开窗口。选择“无”以始终从空工作区开始,“一”以重新打开您处理的最后一个窗口,“文件夹”以重新打开所有已打开文件夹的窗口或“全部”以重新打开您上次会话的所有窗口。 em>

【讨论】:

  • 你说得对,这解决了它 - 我只是忘了仔细检查,如果我安装了最新版本的 VS Code。从版本 1.16.1 开始,它现在可以按我的预期工作。不过,我的第一条评论中的问题仍然存在。我会将其编辑为我的第一个答案...
【解决方案5】:

我尝试了 window.reopenFolders 选项,发现如果从桌面图标启动 VSCode,文件夹和文件将重新打开,但如果我在资源管理器中单击文件并使用 VSCode打开(并且 VSCode 当前未运行),之前的文件夹和文件不会打开。我不确定是否有解决方法。

【讨论】:

  • 好点,我从来没有过多关注这一点,但在提到它之后,我现在知道为什么有时甚至文件夹工作区都不会被记住或重新打开。看起来以前的工作区在使用 VSCode 打开任何其他文件时被重置。
  • 该死的,这是一个巨大的错误。再加上 VS Code 无法重新打开未保存的文件这一事实,这暂时无法使用......
【解决方案6】:

你可以试试设置选项:

"window.reopenFolders": "all"

这应该会重新打开您关闭编辑器时打开的所有内容,但我尚未对其进行测试。我通常更喜欢什么都不会重新打开,所以我使用none。默认为one

【讨论】:

  • 我试过了,但是没有用。看来,这不会影响没有打开文件夹的打开文件。
  • 看起来此设置已更新为“window.restoreWindows”:“all”。仍然包含“none”、“one”、“folders”或“all”的所有选项。至少这是为我解决的问题。
  • @anhtv13 通过快捷键 [CTRL] + [,] 或通过菜单“文件 --> 首选项 --> 设置”
【解决方案7】:

他们在 2016 年 11 月添加了this functionality

这是更改热退出行为的设置:

"files.hotExit": "onExit"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多