如何在 VS Code 中以编程方式关闭特定文件

Pra*_*eek 5 typescript visual-studio-code vscode-extensions

我正在尝试以编程方式关闭已打开的文件。

关闭编辑器的命令是什么Ctrl+F4

我在下面尝试过但没有成功

let mdfile = filename_noext + ".md";
let uri = vscode.Uri.file(mdfile);
await vscode.commands.executeCommand("workbench.action.closeFolder", uri);
await vscode.commands.executeCommand("workbench.action.closeFolder", mdfile);
await vscode.commands.executeCommand("workbench.action.closeActiveEditor", uri);
await vscode.commands.executeCommand("workbench.action.closeEditorsInGroup", uri);
Run Code Online (Sandbox Code Playgroud)

workbench.action.closeActiveEditor关闭当前编辑器,但我想关闭所有打开的编辑器中的特定编辑器。

作为一种解决方法,我在下面做了,因为现在我知道我想要关闭以前的编辑器。

await vscode.commands.executeCommand("workbench.action.previousEditor");
await vscode.commands.executeCommand("workbench.action.closeActiveEditor");
Run Code Online (Sandbox Code Playgroud)

在VS Code 文档中也找不到任何有用的信息

小智 0

我还没有找到通过 URI 或其他引用直接关闭文件的方法。作为解决方法,API 提供了关闭活动编辑器的功能:

await vscode.commands.executeCommand("workbench.action.closeActiveEditor")
Run Code Online (Sandbox Code Playgroud)

或者,如果您想关闭未保存的文档并绕过保存提示,您可以使用以下命令:

await vscode.commands.executeCommand("workbench.action.revertAndCloseActiveEditor")
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令激活 TextDocument:

await vscode.commands.executeCommand("vscode.open", textDocumentToClose.uri)
Run Code Online (Sandbox Code Playgroud)

将它们放在一起,您可以使要关闭的文档处于活动状态,然后将其关闭:

await vscode.commands.executeCommand("vscode.open", textDocumentToClose.uri)
await vscode.commands.executeCommand("workbench.action.closeActiveEditor")
//or await vscode.commands.executeCommand("workbench.action.revertAndCloseActiveEditor")
Run Code Online (Sandbox Code Playgroud)