在VSCode中打开来自远程ssh主机的文件

6

我正在使用来自我的笔记本电脑(Linux)的VSCode远程SSH,以便在Linux主机上处理项目。

如果我在VSCode中打开内部终端,我可以通过执行code some_file.txt来从主机中打开文件。 我经常希望能够从未起源于VSCode的终端中执行相同操作。

是否有任何方式可以在连接到标准(非VSCode内部)终端时打开VSCode服务器中的文件?

3个回答

3

我从另一个StackOverflow答案了解到,如果您打开集成终端并找到VSCODE_IPC_HOOK_CLI环境变量,并在非集成终端中将其设置为相同的值,然后从代码服务器安装目录~/.vscode-server运行code,它就可以工作了。那篇文章没有提到您可以在~/.vscode-server目录中安装多个版本。当前的安装可以从VSCODE_GIT_ASKPASS_MODE变量中提取,看起来像这样:

$ echo $VSCODE_GIT_ASKPASS_NODE
/home/<user>/.vscode-server/bin/054a9295330880ed74ceaedda236253b4f39a335/node

只需去掉node并添加bin,然后运行类似以下命令:

$ /home/<user>/.vscode-server/bin/054a9295330880ed74ceaedda236253b4f39a335/bin/code myfile.txt

编辑: 这是一个小脚本,它将连接终端到最新创建的 vscode 窗口。

cat ~/.local/bin/connect_vscode.sh
export PATH="${HOME}/.vscode-server/bin/$(ls -t1 ${HOME}/.vscode-server/bin | head -n 1)/bin:${PATH}"
export VSCODE_IPC_HOOK_CLI="$(ls -t1 /run/user/$(id -u)/vscode-ipc-* | head -n 1)"
# Tell tmux to set these variables for new windows/panes.
# Remove if you don't use tmux
tmux setenv PATH "$PATH"
tmux setenv VSCODE_IPC_HOOK_CLI "$VSCODE_IPC_HOOK_CLI"

谢谢,我通过在内部终端中调查环境来解决了这个问题。我有一个小脚本,可以查找最新打开的vscode实例的正确路径。一旦我到电脑前,我会在这里添加它。 - Martin Wallgren
/run/user/$(id -u)/vscode-ipc-* 现在可能是 /tmp/vscode-ipc-*。这对于我在 VSCode 1.64.1 上是这样的。 - posita

0

这个线程中的所有答案都不适用于我(由于更高版本的VS-Code改变了其内部路径,而我正在运行预览版)。

我在这里分享一个类似/相同的问题和我的解决方案:

VSCode远程SSH无法从终端打开文件

希望能对您有所帮助。


-1

C. R. Oldham的 答案 涵盖了为什么/如何进行的技术细节。

如果您想要一个作为~/.bash_profilealias工作的一行代码:

# Open file in most recently-connected remote VSCode session.
alias code=$'VSCODE_IPC_HOOK_CLI=/run/user/`id -u`/$(ls -lt /run/user/`id -u`/ | egrep \.sock$ | head -1 | awk \'END {print $NF}\') `ls -lt ~/.vscode-server/bin/** | fgrep bin/remote-cli/code | head -1 | awk \'END {print $NF}\'`'

1
ls -lt ~/.vscode-server/bin/** | fgrep bin/remote-cli/code section of the statement above produces zero results. I would suggest this: alias code="${HOME}/.vscode-server/bin/$(ls -t1 ${HOME}/.vscode-server/bin | head -n 1)/bin/remote-cli/code" - Brian Horakh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接