在 VSCode 中从远程 ssh 主机打开文件

问题描述 投票:0回答:3

我在我的笔记本电脑 (Linux) 上使用 VSCode 远程 SSH 来处理驻留在 Linux 主机上的项目。

如果我在 VSCode 中打开一个内部终端,我可以通过执行

code some_file.txt
从主机打开文件。我经常希望能够从不是源自 VSCode 的终端执行相同的操作。

在连接到标准(非 VSCode 内部)终端时,无论如何都可以在 VSCode 服务器中打开文件吗?

visual-studio-code vscode-remote
3个回答
3
投票

another StackOverflow answer,我了解到如果你打开一个集成终端并找到

VSCODE_IPC_HOOK_CLI
环境变量,并在非集成终端中将其设置为相同的值,然后从代码服务器安装运行
code
目录
~/.vscode-server
,它将起作用。那篇文章没有提到您可以在
~/.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"

0
投票

这个线程上的答案对我都不起作用(由于更新版本的 VS-Code 改变了它的内部路径,我正在运行预览版本)。

我正在链接这个相似/相同的问题+我的解决方案:

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


-1
投票

C。 R. Oldham 的 answer 涵盖了为什么/如何的技术细节。

如果你想要一个在你的

alias
中用作
~/.bash_profile
的1-liner:

# 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}\'`'
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.