You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code扩展开发:如何实现自动分栏打开PDF无需手动选编辑器?

分栏打开PDF文件的VS Code扩展开发问题

我正在为VS Code 1.94.2开发扩展,目标是实现分栏打开PDF文件。目前使用vscode.openWith命令编写了如下代码:

vscode.commands.executeCommand(
    'vscode.openWith',
    uri_pointing_to_my_pdf_file,
    'default',
    vscode.ViewColumn.Beside
)

这段代码能按预期打开编辑器,但会弹出提示:“该文件无法在文本编辑器中显示,因为它是二进制文件或使用了不支持的文本编码”。点击“仍要打开”后,会出现两个选项:

  • 文本编辑器 - 活动(Built-In)
  • PDF预览 - 默认(vscode-pdf)

选择vscode-pdf后可正常在分栏编辑器中显示PDF,但每次都需要手动选择。

问题:如何修改代码,让编辑器无需用户手动选择vscode-pdf就能直接显示PDF?

尝试过的无效方案:

  • 修改viewId:将viewId从'default'改为'vscode-pdf',但无效果。官方文档说明:viewId - 自定义编辑器视图ID,或使用'default'调用VS Code默认编辑器。
  • 使用vscode.open命令:该命令能正确显示PDF,但编辑器会在新标签页打开,而非分栏显示。

解决方案

方案1:正确使用vscode.open命令并指定分栏参数

你之前使用vscode.open时未配置分栏参数,导致默认在新标签打开。只需在命令的选项中明确指定viewColumn即可实现分栏显示:

vscode.commands.executeCommand('vscode.open', uri_pointing_to_my_pdf_file, {
    viewColumn: vscode.ViewColumn.Beside,
    preview: false // 可选,设置为false可避免以预览模式打开PDF
});

VS Code会自动调用关联的默认编辑器(即vscode-pdf)打开PDF,同时按指定的分栏显示。

方案2:确认vscode-pdf的正确视图ID并使用vscode.openWith

若坚持使用vscode.openWith,需确认vscode-pdf扩展注册的自定义编辑器ID。部分版本的vscode-pdf使用的视图ID为vscode.pdf.preview而非vscode-pdf,尝试替换参数:

vscode.commands.executeCommand(
    'vscode.openWith',
    uri_pointing_to_my_pdf_file,
    'vscode.pdf.preview',
    vscode.ViewColumn.Beside
)

如果该ID仍无效,可查看vscode-pdf扩展的package.json文件,找到contributes.customEditors字段下的id值,将其作为viewId传入即可。


内容的提问来源于stack exchange,提问作者Ilka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 05:07:14