visual-studio-code - VSCode 的远程扩展如何通过其内部终端在我的本地编辑器中打开文件?
问题描述
我经常使用 VSCode 的远程开发扩展。我可以在 VS Code 中使用终端,就好像它在我自己的机器上一样,甚至code
命令也可以正常工作。也就是说,当我在远程 VSCode 会话中时,我可以键入code path/to/some/file
,它将打开另一个包含该文件的编辑器选项卡。终端会话和正在打开的文件位于我连接的远程计算机上。
我在远程机器上安装了 VSCode,code
可执行文件在我的PATH
. 所以我的问题是,这个功能是如何在幕后实现的?也就是说,VSCode 怎么知道当我键入code path/to/some/file
它时应该将该文件打开到我机器上的另一个编辑器选项卡中,而不是尝试在远程机器上启动 VSCode?
解决方案
在我写完问题几秒钟后,我找到了答案。
如果我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
- 来源我通常的 bash 个人资料
- 创建上面的目录并将一些帮助程序复制到其中
- 修改我的路径以包含这些目录
我还假设注入的code
可执行文件以某种方式与我的本地 VSCode 实例通信,指示它在其编辑器中打开文件。
推荐阅读
- go - 作为发布者连接到 RabbitMQ 的频率
- scala - 使用原始“基础”比较 Slick MappedColumnType
- java - Android Fragment 没有实现 Activity 的接口错误
- google-apps-script - 无法删除公告 Google App 脚本
- angular - 如何更改 Angular Material 选项卡的样式?
- c# - C# Hill-Cipher 最后 3 个字符错误,其余正确
- java - 贾斯珀听众?从 Tomcat 8 升级到 Tomcat 9
- r - 每个因子 R 的自动历史
- hadoop - 有向图中的 MapReduce 长度 3 条路径
- javascript - 我如何获得在服务器上每 24 小时运行一次的功能?