Posted at

Visual Studio Codeでリモート開発環境と完全同期する

この記事は以下の条件に当てはまる人向けに書いています。


  • 開発環境が共用のリモートサーバー

  • リモートにssh(sftp)でログインできる

  • VimじゃなくてVSCodeを使いたい


  • gitrsync samba lsyncdの併用は遅すぎて無理

  • 更新だけじゃなく削除されたファイルも同期したい

  • ローカル→リモートの一方通行でOK (でも削除は検知したい)

ショートカットキーやパスなどMac仕様なのでWindowsの人は適宜読み替えてください。


拡張機能のインストール

sftpを入れる。sftpで検索すると一番上に出てきます。

スクリーンショット 2018-11-09 13.28.28.png


sftpの設定

Command + P>sftp で設定ファイルを作成する。


sftp.json

{

"name": "foobar",
"protocol": "sftp",
"host": "foobar",
"port": 22,
"username": "foo",
"privateKeyPath": "/Users/foo/.ssh/foobar_rsa",
"remotePath": "/home/foo/bar",
"ignore": [
".vscode",
".git",
".DS_Store"
],
"sshConfigPath": "/Users/foo/.ssh/config",
"syncMode": "full",
"uploadOnSave": true,
"watcher": {
"files": "**/*",
"autoUpload": true,
"autoDelete": true
}
}

項目(key)
意味
説明

name
設定名
任意の設定名。省略可能。

protocol
プロトコル
ftpかsftp。最近はほとんどsftpなのでよく分からなかったらsftpで。

host
ホスト
リモートサーバーのホスト名。

port
ポート
リモートサーバーのポート名。sftpならふつうは22。

username
ユーザー名
リモートサーバーにログインするユーザー名。

privateKeyPath
秘密鍵のパス
リモートログイン用の秘密鍵のパス。パスワードログインの場合はprivateKeyPathではなくpasswordキーに値としてパスワードを直接書く。

sshConfigPath
ssh設定のパス
こだわり設定がある場合は指定しよう。

syncMode
同期モード
updateかfull。完全同期なのでfullを指定。

uploadOnSave
保存時にアップロード
trueを指定するとファイル保存時にアップロードが行われる。

watcher.files
監視するファイル
VSCode以外からのファイル変更を監視する対象。

watcher.autoUpload
自動更新
VSCode以外から変更された場合にリモートを自動で更新する。

watcher.autoDelete
自動削除
VSCode以外から削除された場合にリモートを自動で削除する。

よいVSCodeライフを♡