vscode SSH远程开发时使用本地扩展(如copilot)

vscode SSH远程开发时使用本地扩展(如copilot)

背景

vscode在安装remote SSH插件后可以连接到远程服务器进行开发,体验良好。

但考虑到许多扩展需要访问文件,因此默认情况下大部分本地安装的扩展并不会默认启用,打开扩展栏可以看到这些扩展显示一个“在【远程计算机】中安装”的按钮,需要在远程服务器上再安装一遍。

根据vscode关于extension Kind的文档,扩展开发者可以按需声明扩展的extensionKind为本地运行的"ui"或在工作区中运行的"workspace",或者根据偏好设置优先选择的模式。在缺省情况下,扩展默认为"workspace",这就是在ssh远程时大部分扩展不会启用的原因。

实际上,对于一部分无需操作文件的扩展,即使在远程连接时也可以在本地UI进程中运行。例如github copilot等编辑助手插件,或者国内比较优秀的fitten code。如果能在远程时使用本地的这些扩展,不仅能增强写代码的体验,也能避免污染服务器上的环境。

解决

对于这种情况,用户可以在settings.json中手动覆盖扩展在远程执行的extensionKind

操作方法如下:

  1. 打开扩展侧边栏,找到需要远程时本地启用的扩展

  2. 点击打开详情,在页面右侧“详细信息”最下方找到扩展的标识符并复制。例如copilot的标识符就是github.copilot,fittencode的标识符是fittentech.fitten-code

  3. 打开vscode设置页面,搜索“extension kind”

  4. 默认情况下设置无法直接编辑,点击“在settings.json中编辑”

  5. 默认会生成一个设置模板,将其中pub.name部分替换为此前复制的扩展标识符。如果有多个扩展,使用逗号分隔。例如同时启用copilot和fittencode:

  6. 1
    2
    3
    4
    5
    6
    7
    
    "remote.extensionKind": {
      "fittentech.fitten-code": [
        "ui"
      ],
      "github.copilot": [
        "ui"
      ]
  7. 连接到remote SSH,测试扩展是否正常运行。

参考

0%