如何防止 VS Code 在上一个滚动位置重新打开文件

chr*_*win 6 visual-studio-code

使用 VS Code 时,我遇到了意外的行为。当我重新打开文件时,编辑器会在上一个滚动位置打开。

例子:

  • 我打开一个长文件,向下滚动一半进行一些编辑,保存并关闭文件
  • 我再次重新打开同一个文件。它将在我在文件中间进行编辑的相同滚动位置打开。

截屏视频

我预计编辑器会像其他文本编辑器一样在文件顶部重新打开文件。

我无法找到任何可以解释此行为的设置。

Von*_*onC 2

意外的行为

这实际上是非常预期的行为:将工作台恢复到其确切状态。

问题 24394证实了这一点,该问题(间接)询问您想要什么。

默认情况下应选择加入并禁用此行为。
我经常打开一个文件,滚动到底部查找某些内容,然后将其关闭。

现在,我打开的几乎每个文件都从底部而不是顶部开始,90% 的情况下,我做的第一件事就是滚动到顶部。

2018年9月提交27cb886,VSCode 1.28,引入设置

'workbench.editor.restoreViewState': {
        'type': 'boolean',
        'description': nls.localize('restoreViewState', 
         "Restores the last view state (e.g. scroll position) when re-opening files 
          after they have been closed."),
        'default': true,
},
Run Code Online (Sandbox Code Playgroud)

这解决了问题。


2020 年 8 月更新,VSCode 1.49

允许为每种语言配置 workbench.editor.restoreViewState

当我们关闭文件然后重新打开它时,VS Code 会恢复光标位置。

在许多情况下这是期望的。
但是,在某些情况下并非如此,因此为此提供一个设置并允许根据所使用的语言对其进行不同的配置将很有用。

例如:当我git commit在终端中运行时,该COMMIT_EDITMSG文件将在 VS Code 中打开。
理想情况下,我的光标将位于顶部,这样我就可以立即开始编写我的提交消息。然而,很多时候我的光标位于其他地方,大概是因为 VS Code 试图将其恢复到我上次编写提交消息时关闭此文件时的位置。

当我运行 git rebase --interactive 并且在 VS Code 中打开 rebase 待办事项列表时,也会发生这种情况。

现在已修复此问题:

  • 配置workbench.editor.restoreViewState语言,例如markdown
  • 打开几个文件,包括 markdown 和滚动 + 设置您可以记住的选择
  • 在选项卡之间切换并验证视图状态是否已恢复
  • 重新加载窗口并执行相同操作并验证视图状态是否已恢复
  • 关闭非 Markdown 文件并再次打开它并验证视图状态是否已恢复
  • 关闭 markdown 文件并再次打开它并验证视图状态未恢复