在某些环境(例如集群环境中)一些基于vscode的编辑器在终端中的 code 命令会失效,本文记录一下如何修复这个问题
01 code 命令的使用
对于 vscode 类的软件,在终端中可以使用 code 命令在新的窗口打开一个文件夹并将其作为工作空间,例如将~/project作为工作空间打开可以使用
bash
code ~/project
该命令同样可以在当前vscode 窗口打开一个文件,例如打开~/.bashrc可以使用
bash
code ~/.bashrc
02 修复无法使用 code 的问题
解决方案是将code命令所在的目录加入到PATH中,下面给了一些常见的编辑器的脚本
使用2025年版本的vscode 编辑器:
在~/.bashrc文件中加入下面的内容,并重新开终端(或者source ~/.bashrc)。
bash
# 2025版本的vscode
if [[ ! -z VSCODE_IPC_HOOK_CLI ]]; then
for i in $(ls ~/.vscode-server/cli/servers); do
export PATH=$HOME/.vscode-server/cli/servers/$i/server/bin/remote-cli:$PATH
done
fi
更久之前版本的vscode
在~/.bashrc文件中加入下面的内容,并重新开终端(或者source ~/.bashrc)。
bash
# 2024版本
if ( $?VSCODE_IPC_HOOK_CLI ) then
foreach i (`ls -d ~/.vscode/cli/servers/*/ --indicator-style=none`)
set path = ( $i'server/bin/remote-cli' $path )
end
endif
# 更久之前
if [[ ! -z VSCODE_IPC_HOOK_CLI ]]; then
for i in $(ls ~/.vscode-server/bin); do
export PATH=$HOME/.vscode-server/bin/$i/bin:$PATH
done
fi
cursor 编辑器的修改
在~/.bashrc文件中加入下面的内容,并重新开终端(或者source ~/.bashrc)。
bash
# cursor remote cli
if [[ ! -z CURSOR_IPC_HOOK_CLI ]]; then
for i in $(ls ~/.cursor-server/bin/linux-x64); do
export PATH=$HOME/.cursor-server/bin/linux-x64/$i/bin/remote-cli:$PATH
done
fi
其他
如果上述都不满足你的需求,可以考虑根据自己需要修改命令脚本,下面以 cursor 编辑器作为例子
- 先确定自己编辑器的标志性环境变量,这个变量用以确定你现在是在使用这个编辑器打开的终端。例如 vscode 是
VSCODE_IPC_HOOK_CLI, cursor 则是CURSOR_IPC_HOOK_CLI。如果用的其他的可以去搜一下/问AI。将最前面的if 判断的环境变量改为你的编辑器的标志性环境变量
bash
if [[ ! -z CURSOR_IPC_HOOK_CLI ]]; then
- 在服务器中找到 server 在哪,一般在自己的home目录下,例如我的是
~/.cursor-server - 在该目录下找到 code 文件所在的目录,例如我这个是在
~/.cursor-server/bin/linux-x64/4ca9b38c6c97d4243bf0c61e51426667cb964bd0/bin/remote-cli/ - 找到中间那个hash文件夹的目录,在这个中hash值就是
4ca9b38c6c97d4243bf0c61e51426667cb964bd0,它所在的目录就是~/.cursor-server/bin/linux-x64 - 然后修正脚本的for改为
bash
for i in $(ls ~/.cursor-server/bin/linux-x64); do
- 取代导出的目录为code 所在目录,并且要将hash目录用参数代替
bash
export PATH=$HOME/.cursor-server/bin/linux-x64/$i/bin/remote-cli:$PATH
- 其余的保持不变即可。