Visual Studio Code で ssh 先のファイルを編集するには、Remote VSCode を使います。
Remote VSCode - Visual Studio Marketplaceなかなか仕組みが面白かったので紹介したいと思います。Remote VSCode は、実際は
A package that implements the Textmate's 'rmate' feature for VSCode.
https://marketplace.visualstudio.com/items?itemName=rafaelmaiolla.remote-vscode
$ ssh -R 52698:127.0.0.1:52698 user@example.org rmate /path/to/the/file.txt
rmate は Remote VSCode と通信してファイルの中身をやり取りします。実際には ssh でログインした際のポートフォワード機能によりリモート側のポート 52698 番で受け待ちすると同時に rmate コマンドを起動、ローカルで Remote VSCode と通信します。
rmate のプロトコルは至って簡単で、最初にファイルセットを送ります。
open
display-name: file.txt
data-on-save: yes
re-activate: yes
token: xxxxxxxxxxxxxxxx
data: 14
This is a file
.
以降は Remote VSCode が保存する度に以下のメッセージを送ってきます。
save
token: xxxxxxxxxxxxxxxx
data: 16
This is the file
面白い事にこの rmate、なぜだか色んな言語で実装されている。
Ruby version: https://github.com/textmate/rmateBash version: https://github.com/aurora/rmate
Perl version: https://github.com/davidolrik/rmate-perl
Python version: https://github.com/sclukey/rmate-python
Nim version: https://github.com/aurora/rmate-nim
C version: https://github.com/hanklords/rmate.c
Node.js version: https://github.com/jrnewell/jmate
いや、そんなにいらんやろw と思いつつも golang 版が無かったので作った。おとなげない。
GitHub - mattn/gomate
README.md gomate Edit files from an ssh session in TextMate/VSCode Usage 1 gomate /path/to/the/file....
https://github.com/mattn/gomate
まぁ、ssh してリモートで vim 使えばいいじゃんって思うけど、どうしても Visual Studio Code じゃないと嫌やねんって人はどうぞ。