jed*_*atz 5 ssh visual-studio-code vscode-remote
我喜欢 VS Code 的一点是,当我在 WSL 中使用终端时,我可以运行code file.txt,并且它将使用 WSL 远程扩展在我的本地使用 VS Code 打开该文件。
是否可以用 SSH 做类似的事情?即,如果我code file.txt通过 SSH 连接到远程主机,是否可以进行设置,以便运行将在我的本地计算机上打开 VS Code,通过远程 SSH 扩展连接来打开该文件?
Laz*_*Ren 23
感谢这篇文章,我找到了更好且简单的答案。
只需创建code以以下内容命名的新脚本文件并将文件放在$PATH. (echo $PATH查看您可以使用哪些文件夹)
#! /usr/bin/env zsh
local max_retry=10
for i in {1..$max_retry}
do
local script=$(echo ~/.vscode-server/bin/*/bin/remote-cli/code(*oc[$i]N))
if [[ -z ${script} ]]
then
echo "VSCode remote script not found"
exit 1
fi
local socket=$(echo /run/user/$UID/vscode-ipc-*.sock(=oc[$i]N))
if [[ -z ${socket} ]]
then
echo "VSCode IPC socket not found"
exit 1
fi
export VSCODE_IPC_HOOK_CLI=${socket}
${script} $@ > /dev/null 2>&1
if [ "$?" -eq "0" ]; then
exit 0
fi
done
echo "Failed to find valid VS Code window"
Run Code Online (Sandbox Code Playgroud)
#! /bin/bash
max_retry=10
for i in $(seq 1 $max_retry)
do
recent_folder=$(ls ~/.vscode-server/bin/ -t | head -n$i | tail -1)
script=$(echo ~/.vscode-server/bin/$recent_folder/bin/remote-cli/code)
if [[ -z ${script} ]]
then
echo "VSCode remote script not found"
exit 1
fi
socket=$(ls /run/user/$UID/vscode-ipc-* -t | head -n$i | tail -1)
if [[ -z ${socket} ]]
then
echo "VSCode IPC socket not found"
exit 1
fi
export VSCODE_IPC_HOOK_CLI=${socket}
${script} $@ 2>/dev/null
if [ "$?" -eq "0" ]; then
exit 0
fi
done
echo "Failed to find valid VS Code window"
Run Code Online (Sandbox Code Playgroud)
上面的脚本不适用于最近的更新。我必须将第一行更改为
local script=$(echo ~/.vscode-server/bin/*/bin/remote-cli/code(*oc[1]N))
Run Code Online (Sandbox Code Playgroud)
如果最近打开的 ssh 窗口关闭,但另一个 SSH 窗口打开,原始脚本可能会失败。我增强了脚本,以便能够使用最近的 N(默认 10)个窗口重试该命令。
你不应该做任何事。code VSCode根据您的 shell自动将 path/PATH 设置为path/PATH 环境变量。看到这个回复。您可能会像我一样覆盖您的路径/PATH。我不小心覆盖了 pathin~/.cshrc和PATHin~/.bashrc并遇到了同样的问题。修复后,我可以code在命令行上运行。which code返回命令的位置。
直到我花时间弄清楚之前,我一直在使用下面提到的两种方法。两者都对我有用bash;您可以根据您的需要对其进行修改。但真正修复你的路径/PATH 而不是使用这些方法。
将位置添加code到 PATH 中~/.bashrc
export PATH=${VSCODE_GIT_ASKPASS_NODE%/*}/bin/remote-cli:$PATH
或者
将别名设置为codein~/.bashrc
alias code="${VSCODE_GIT_ASKPASS_NODE%/*}/bin/remote-cli/code"
使用以下命令打开远程终端上的文件夹或文件。注意:vscode-server必须已安装在远程主机上(如果您已经连接到它,则应该如此)。此外,还必须为文件或文件夹指定绝对路径。用于-n在新窗口中启动,-r以重复使用同一窗口。
code --folder-uri <absolute-path>
code --file-uri <absolute-path-file-name>
Run Code Online (Sandbox Code Playgroud)
例子:
code -r --folder-uri /home/myscripts/src
code -n --file-uri /home/myscripts/src/math/sample.py
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1604 次 |
| 最近记录: |