vscode 可以用外部程序打开文件吗?

Can vscode open files with external programs?

Is there any way to set vscode such that double-clicking a .docx file in the embedded file explorer causes the file to be opened in Microsoft Word?

上下文

我习惯了 PyCharm,但我一直在迁移到 vscode。我习惯于创建 Word 文档文件 (.docx) 并在左侧子 window 的文件资源管理器中双击它们以启动 Word 并查看文档的样子。这在 PyCharm 中有效,但在 vscode 中它会尝试将文件作为二进制文件打开并声称它没有编辑器。即使它有一个编辑器,我也希望它在我的第二台显示器上打开(或者至少能够将它移动到我的第二台显示器上)。目前,我正在打开一个文件资源管理器 window 并双击那里的文件,这不是最佳选择。

它不完全是双击,但您可以创建一个打开文件命令作为任务,然后将该任务绑定到键盘快捷键,相当于一次单击和一个热键。

正在创建打开文件任务

我们最好将此任务设置为用户级别,以便在每个项目中都可以访问。

ctrl+shift+p 并搜索 Tasks: Open User Tasks

tasks.json文件中,将打开文件任务添加到tasks数组中:

// Inside "tasks": [ ... ]
{
  "label": "open file",
  "type": "shell",
  "command": "${file}",
  "presentation": {
  // Hides the task terminal from showing up
    "reveal": "never",
  }
}

"command" 更改为 shell 的任何打开文件命令(仅 ${file} 适用于 windows,但将其更改为 xdg-open ${file} linux)

正在为打开文件任务分配快捷键

要将任务命令绑定到快捷键,ctrl+shift+p 并搜索 keyboard shortcuts (JSON),打开文件。将以下内容添加到数组中(将 "key" 更改为您想要的任何组合)

// [ ... ]
{
  "key": "ctrl+alt+l",
  "command": "workbench.action.tasks.runTask",
  "args": "open file"
}

要打开任何文件,单击它以将其聚焦在一个选项卡中(设置 tasks.json 中定义的 ${file})并使用分配的热键。 (作为旁注,打开将 vscode 作为默认程序的文件将在同一实例中打开它,因此看起来好像任务没有做任何事情)

要工作,Windows 用户应注意命令引号

tasks.json :

{
    "label": "open file",
    "type": "shell",
    "command": "'c:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE' '${file}'"
}