首页 > 解决方案 > VSCode 的远程扩展如何通过其内部终端在我的本地编辑器中打开文件?

问题描述

我经常使用 VSCode 的远程开发扩展。我可以在 VS Code 中使用终端,就好像它在我自己的机器上一样,甚至code命令也可以正常工作。也就是说,当我在远程 VSCode 会话中时,我可以键入code path/to/some/file,它将打开另一个包含该文件的编辑器选项卡。终端会话和正在打开的文件位于我连接的远程计算机上。

我在远程机器上安装了 VSCode,code可执行文件在我的PATH. 所以我的问题是,这个功能是如何在幕后实现的?也就是说,VSCode 怎么知道当我键入code path/to/some/file它时应该将该文件打开到我机器上的另一个编辑器选项卡中,而不是尝试在远程机器上启动 VSCode?

标签: visual-studio-code

解决方案


在我写完问题几秒钟后,我找到了答案。

如果我which code在终端中运行,它不会解析为通常的 VSCode 可执行文件,而是解析为位于$HOME/.vscode-server/bin/a5d1cc28bb5da32ec67e86cc50f84c67cc690321/bin/code.

如果我echo $PATH可以看到,$HOME/.config/bin并且$HOME/.vscode-server/bin/a5d1cc28bb5da32ec67e86cc50f84c67cc690321/bin已附加到PATH我的 bash 配置文件生成的 env var 的开头。

我认为这意味着 VSCode 正在使用不同的配置文件脚本执行 bash

  1. 来源我通常的 bash 个人资料
  2. 创建上面的目录并将一些帮助程序复制到其中
  3. 修改我的路径以包含这些目录

我还假设注入的code可执行文件以某种方式与我的本地 VSCode 实例通信,指示它在其编辑器中打开文件。


推荐阅读