I use VSCode's remote development extension fairly regularly. I can use the terminal in VS Code as if it were on my own machine, and even the code
command works correctly. That is, when I'm in a remote VSCode session, I can type code path/to/some/file
and it will open another editor tab with that file. The terminal session and the file being opened are on the remote machine to which I've connected.
I have VSCode installed on the remote machine, and the code
executable is in my PATH
. So my question is, how is this functionality implemented behind the scenes? That is, how does VSCode know that when I type code path/to/some/file
it should open that file into another editor tab on my machine instead of trying to fire up VSCode on the remote machine?
Literally seconds after I wrote the question I found the answer.
If I run which code
in the terminal, it doesn't resolve to the usual VSCode executable, but instead it resolves to one located at $HOME/.vscode-server/bin/a5d1cc28bb5da32ec67e86cc50f84c67cc690321/bin/code
.
If I echo $PATH
I can see that $HOME/.config/bin
and $HOME/.vscode-server/bin/a5d1cc28bb5da32ec67e86cc50f84c67cc690321/bin
has been appended to the beginning of the PATH
env var that my bash profile generates.
I assume this means that VSCode is executing bash with a different profile script that
I also assume that the injected code
executable is communicating with my local instance of VSCode in some way, instructing it to open the file in its editor.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.