Visual Studio Code永远不会重新打开以前的文件或文件夹

时间:2016-03-31 08:31:47

标签: visual-studio-code

我对此问题的问题恰恰相反:Visual Studio Code always reopens previous file or folder

VSCode似乎永远不会记住我之前打开的文件,并始终以空窗口开头。我检查过,如果我的快捷方式偶然出现参数“-n”(这会强制这种行为),但它不在那里。

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

7 个答案:

答案 0 :(得分:38)

<击> 看来,如果你还打开了一个文件夹,VsCode只会记住打开的文件。 没关系,如果这只是你驱动器某处的虚拟文件夹 - 如果你打开这个文件夹之外的文件,它们也会被记住。

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

修改:这是一个错误并已跟踪here

<击>

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

已经实现了

Hot exit,它可以恢复在VS代码关闭之前未保存的文件。 要更改此设置,请使用此设置:

files.hotExit: "onExit"

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

window.restoreWindows: "all"

但仍有未解决的问题here

...

答案 1 :(得分:10)

您可以尝试设置选项:

"window.reopenFolders": "all"

这应该重新打开关闭编辑器时打开的所有内容,但我还没有对其进行测试。我通常更喜欢没有重新打开,所以我使用none。默认值为one

答案 2 :(得分:6)

转到: 打开文件 - &gt;偏好 - &gt;设置并添加"window.restoreWindows": "all" 到您的settings.json文件。 请记住在前面的语句中添加逗号。

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

答案 3 :(得分:4)

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

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

<ReactRouter.Route path="*" component={Handle404} />

答案 4 :(得分:3)

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

答案 5 :(得分:2)

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

"window.restoreWindows": "none",

在设置中。

控制重启后窗口的重新打开方式。选择“无”始终以空白工作区开头,选择“一个”重新打开您处理的最后一个窗口,选择“文件夹”重新打开所有打开文件夹的窗口,或者“全部”重新打开上一个会话的所有窗口。

答案 6 :(得分:0)

如果使用VSCode 1.42(2020年第一季度)意外关闭(例如,操作系统重新启动以进行操作系统更新,或强制终止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 UI时(例如,来自Windows的一些提示来应用更新),它都可以工作。
我认为这是我们目前可以做的最好的事情。