远程linux终端中支持vscode的code命令

1. 背景

利用win10上的vscode ssh进行远程linux连接时,在win 10上vscode的终端中,使用code命令,可以打开新的vscode窗口,直接连接到远程linux。但是在远程linux无法直接使用code命令,来打开win10上vscode。我们想实现在远程linxu上,也可以通过code命令,直接打开win10上的vscode。

2. 原因

主要原因是远程的linux中没有对应的path和IPC hook。下一步可以手动增加一个path和IPC hook。

3. 操作命令

3.1 前提条件

win10上已经打开了一个vscode窗口,并且已经建立了远程ssh连接到linux。

3.2 具体操作

临时给mobaxterm的Vscode设置path和ipc,支持vscode的code命令,在远程的linux中执行:

复制代码
# 第1步设置path
export PATH="$(find "$HOME/.vscode-server/cli/servers" -mindepth 1 -maxdepth 1 -type d -name 'Stable-*' ! -name '*.staging' -printf '%T@ %p\n' | sort -nr | head -1 | cut -d' ' -f2-)/server/bin/remote-cli:$PATH"

# 第2步设置ipc
export VSCODE_IPC_HOOK_CLI=$(ss -xlpnH | grep -oE "/run/user/$(id -u)/vscode-ipc-[^[:space:]]+\.sock" | head -1)

设置完成后可以在远程linux中确认下:

which code

echo "$VSCODE_IPC_HOOK_CLI"

4. 解释

第一行:把 code 命令加入 PATH

复制代码
export PATH="$(find "$HOME/.vscode-server/cli/servers" \
  -mindepth 1 -maxdepth 1 -type d \
  -name 'Stable-*' ! -name '*.staging' \
  -printf '%T@ %p\n' |
  sort -nr |
  head -1 |
  cut -d' ' -f2-)/server/bin/remote-cli:$PATH"

它会:

  1. 在以下目录查找 VS Code Server:
    ~/.vscode-server/cli/servers
  2. 只寻找名为 Stable-* 的稳定版目录,并排除 *.staging 临时目录。
  3. 根据修改时间倒序排列:
    sort -nr
  4. 选择最新的一个版本:
    head -1
  5. 取出该版本中 remote-cli 的路径,添加到当前 shell 的 PATH 前面。

第二行:指定 VS Code 的 IPC 通信 Socket

复制代码
export VSCODE_IPC_HOOK_CLI=$(
  ss -xlpnH |
  grep -oE "/run/user/$(id -u)/vscode-ipc-[^[:space:]]+\.sock" |
  head -1
)

它会:

  1. 使用 ss -xlpnH 查找本机正在监听的 Unix Socket。
  2. 筛选当前用户的 VS Code IPC Socket,例如:
    /run/user/1000/vscode-ipc-xxxxxxxx.sock
  3. 取找到的第一个 Socket。

5. 限制条件

  • export 只对当前终端及其子进程有效,退出 MobaXterm 会话后失效。
  • 前提是已经通过 VS Code Remote SSH 连接过这台服务器,并且 VS Code Server 仍在运行。

6. 其他命令

6.1 分步设置

分步设置patch

复制代码
find "$HOME/.vscode-server/cli/servers" -mindepth 1 -maxdepth 1 -type d -name 'Stable-*' ! -name '*.staging' -printf '%T@ %p\n' | sort -nr | head -1 | cut -d' ' -f2-

# 分步设置ipc
ss -xlpn | grep "/run/user/$(id -u)/vscode-ipc"

# 设置连接
ipc=$(ss -xlpnH | grep -oE "/run/user/$(id -u)/vscode-ipc-[^[:space:]]+\.sock" | head -1)

echo "$ipc"
export VSCODE_IPC_HOOK_CLI="$ipc"

分步设置ipc

复制代码
ss -xlpn | grep "/run/user/$(id -u)/vscode-ipc"

# 设置连接
ipc=$(ss -xlpnH | grep -oE "/run/user/$(id -u)/vscode-ipc-[^[:space:]]+\.sock" | head -1)

echo "$ipc"
export VSCODE_IPC_HOOK_CLI="$ipc"

6.2 手动导入配置

在vscode中终端查询:

复制代码
which code
echo "$VSCODE_IPC_HOOK_CLI"

# 输出:
/home/d12345/.vscode-server/cli/servers/Stable-8a7abeba6e03ea3af87bfbce9a1b7e48fed567b8/server/bin/remote-cli/code
/run/user/1006/vscode-ipc-41309e88-5a57-40ed-bb1a-64905ece2758.sock

在mobaxterm中设置:

复制代码
export PATH="$HOME/.vscode-server/cli/servers/Stable-8a7abeba6e03ea3af87bfbce9a1b7e48fed567b8/server/bin/remote-cli:$PATH"
export VSCODE_IPC_HOOK_CLI="/run/user/1006/vscode-ipc-41309e88-5a57-40ed-bb1a-64905ece2758.sock"
相关推荐
别动我齐刘海8 小时前
ROS2 Jazzy + C++ 实战路线——基础学习2
c++·人工智能·vscode·python·学习·机器学习·机器人
东木月12 小时前
PyCharm 集成 Claude Code 插件:安装、配置与使用指南
python·pycharm·编辑器
boke112百科15 小时前
WordPress经典编辑器【插入至文章】按钮怎么调到右上角?
编辑器·wordpress·wordpress教程·经典编辑器
AI编码进化论15 小时前
云IDE介绍:环境模板化、Agent上云,云IDE该怎么选
开发语言·ide·人工智能·团队开发·ai编程
郝学胜-神的一滴17 小时前
C++20模板元编程 05:吃透变参模板,解锁编译期万能参数能力
服务器·开发语言·c++·windows·vscode
我要见SA姐11 天前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
ide·vscode·python·自动化·编辑器
ndsc_d1 天前
VS Code 接入 Pixso MCP 实战:配置、安装 AI Skill 与设计稿转代码
vscode·ai·设计·pixso·skill·mcp·设计稿转代码
千里马学框架1 天前
Android 17 成功编译运行差异部分更新
vscode·开发工具·车载开发·aosp源码·安卓17·aosp17·编译源码
2501_915918412 天前
使用 VS Code 写 Swift 做 iOS 开发,插件能实现哪些功能,还有哪些短板
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
威嵌神州2 天前
天脉 3 开发环境与 BSP 适配:IDE license、驱动开发、飞腾平台
ide·驱动开发·嵌入式硬件·fpga开发