关于 vscode 调用 openFile 的问题

2020-08-29 20:38:15 +08:00
 chenqh
vscode.commands.executeCommand("workbench.action.quickOpen", content);

这个命令运行时会弹窗的,但是在 vscode terminal 里面的 Open File in editor 不需要弹窗直接就跳过去了,这个怎么做的?

2100 次点击
所在节点    Visual Studio Code
2 条回复
imn1
2020-08-29 20:46:43 +08:00
本身就是终端,还弹什么呢?
geelaw
2020-08-29 21:00:12 +08:00
因为 quickOpen 命令的含义是:打开“转到文件”对话框。它的作用是让用户选择要打开的文件,而不是打开一个文件。

什么叫做“在 vscode terminal 里面的 Open File in editor”?你是指在内置终端里用 START / Start-Process / Invoke-Item / open 等打开一个和 VSCode 关联的文件时,VSCode 打开了文件,这个现象吗?
那些命令和 quickOpen 没关系,纯粹就是“一个程序使用默认关联打开文件,于是关联程序处理了这个请求”的结果。那些命令根本不关心自己是不是从 VSCode 内置的终端里发出的,也不可能有“得用 vscode.commands 让 VSCode 打开文件”的逻辑。

换个方式问你的问题:为什么运行 code C:\1.txt 会导致 VSCode 打开 C:\1.txt 而不是“转到文件”对话框?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/702474

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX