如何防止 VS Code 格式化后跳到文件底部?
我选择整个文件内容(使用
Ctrl + A
),然后格式化所有内容(使用 Alt + Shift + F
)。之后,我希望我的文件被格式化并且视图不会移动。文件已格式化,但视图跳至底部。
如何防止这种跳跃?
当您执行
Ctrl+A
时,您的光标会隐式移动到所选内容的末尾,即文件的末尾。因此,您的光标不会因格式而移动到最后,而是因选择而移动。
解决方案是格式化整个文件(使用
Alt+Shift+F
)而不选择之前的内容(Ctrl + A
)。
此外,在您的情况下,
Ctrl+A
没有用,因为您正在使用快捷方式来格式化整个文档。如果您只想格式化所选内容,快捷键是 Ctrl+K Ctrl+F
。
即使没有选择所有内容,我在保存文件时也遇到类似的问题。
使用 Prettier 格式化程序打开保存格式。
问题是文件大小,当文件大小超过100KB时,这个问题就开始了。
将文件内容分成不同的文件并删除文件中不必要的内容以减小大小后,问题解决。
这可能(当前或过去)是由于 VS Code 中与其扩展 API 相关的错误或使用该 API 实现格式化支持的扩展中的错误所致。
有关 VS Code 错误的示例,请参阅 https://github.com/microsoft/vscode/issues/71707。
如果您安装了 Prettier 扩展,请知道它过去曾遇到过此问题,并且继续存在这些问题 - 特别是对于非常大的文件:
endOfLine
设置为 "auto"
。如果您遇到这样的问题,您可以执行扩展二等分来查明是否是导致此问题的特定扩展,或者只需检查您的设置以查看您为您的语言配置的默认格式化程序看到此问题,然后检查该扩展的问题跟踪器(您可以在扩展视图的页面或其市场页面中找到其问题跟踪器的链接)以查看该问题是否已报告,并且如果没有,请提出新的问题单来报告该问题,并提供有关如何“最小程度地重现”该问题的尽可能多的详细信息。您还可以尝试回滚到有问题的扩展的以前版本,看看问题是否在以前的版本中不会发生。