在 Visual Studio Code 中更改无标题选项卡的标题

Posted

技术标签:

【中文标题】在 Visual Studio Code 中更改无标题选项卡的标题【英文标题】:Change title of untitled tab in Visual Studio Code 【发布时间】:2018-02-03 05:42:12 【问题描述】:

我正在构建一个 VS Code 扩展,其中包括更改 untitled-1 选项卡(未保存的文件)的名称/标题。 我尝试在扩展的调试器控制台中运行以下代码,但它没有反映在编辑器中:

vscode.workspace.textDocuments[0].fileName="myFile"

这是不可能的还是我错过了什么?

【问题讨论】:

【参考方案1】:

仍然(2020 年第一季度)不可能,但下一个 VSCode 1.42 将name its Untitled editors differently。

VS Code 中的无标题编辑器是尚未保存到磁盘的文本缓冲区。 您可以将它们保持打开状态,只要您愿意,所有文本内容都会在重新启动之间存储和恢复。

无标题的编辑者被赋予通用名称,例如 Untitled-1 并向上计数。在此版本中,无标题的编辑者将使用文档第一行的内容作为编辑者标题,并将通用名称作为描述的一部分:

注意:如果第一行为空或不包含任何单词,标题将像以前一样回退到Untitled_*

因此,虽然您不能自己设置标题(仍然是 readonly fileName),但从技术上讲...更改该文件的 第一行 足以更改所述“无标题”编辑器的标题。


使用VSCode 1.43 (Q1 2020),新设置workbench.editor.untitled.labelFormat 允许控制无标题编辑器是否应将内容用作标题。 可能的值为contentname。 配置 'workbench.editor.untitled.labelFormat': 'name' 以恢复以前的行为,其中无标题的编辑器会有一个短标题,例如 Untitled-1

【讨论】:

这正是我试图构建扩展的目的。【参考方案2】:

这是不可能的——如果你查看the API definition in vscode.d.ts的源代码,你会看到fileName被声明为readonly

export interface TextDocument 
    // ...
    readonly fileName: string;
    // ...

不幸的是,readonly 属性似乎没有反映在API docs on the website 中。

【讨论】:

这很可悲。有什么办法可以说服他们使字段可变? 似乎不太可能,考虑到所有其他属性也是只读的。此外,我怀疑fileName 直接对应于标签标题中最终显示的内容。 哦,所以选项卡标题可能不是从文件名中获取的?你能确认一下吗 看来最终还是getPathLabel()负责编辑标题,确实使用了文件名。

以上是关于在 Visual Studio Code 中更改无标题选项卡的标题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio Code 中更改 Python 版本?

如何在 Visual Studio Code 中更改标尺的颜色

在 Visual Studio Code 中动态更改行号设置

在 Visual Studio Code 中调试 python 程序时更改代码

在 Visual Studio Code 中更改文件的编码

如何更改 Visual Studio Code 中的格式选项?