この記事は以下の条件に当てはまる人向けに書いています。
- 開発環境が共用のリモートサーバー
- リモートにssh(sftp)でログインできる
- VimじゃなくてVSCodeを使いたい
-
git
とrsync
samba
lsyncd
の併用は遅すぎて無理 - 更新だけじゃなく削除されたファイルも同期したい
- ローカル→リモートの一方通行でOK (でも削除は検知したい)
- 純正のリモート同期が使えない事情がある
ショートカットキーやパスなどMac仕様なのでWindowsの人は適宜読み替えてください。
拡張機能のインストール
sftpを入れる。sftp
で検索すると一番上に出てきます。
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",
"syncOption": {
"delete": true,
"skipCreate": false,
"ignoreExisting": false,
"update": false
},
"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設定のパス | こだわり設定がある場合は指定しよう。 |
syncOption.delete | 同期オプション(delete) | 削除を同期するか。 |
syncOption.skipCreate | 同期オプション(skipCreate) | 新規作成ファイルをスキップするか。 |
syncOption.ignoreExisting | 同期オプション(ignoreExisting) | 既存ファイルの更新をスキップするか。 |
syncOption.update | 同期オプション(update) | ローカル側が新しい場合のみ上書き更新する。 |
uploadOnSave | 保存時にアップロード | trueを指定するとファイル保存時にアップロードが行われる。 |
watcher.files | 監視するファイル | VSCode以外からのファイル変更を監視する対象。 |
watcher.autoUpload | 自動更新 | VSCode以外から変更された場合にリモートを自動で更新する。 |
watcher.autoDelete | 自動削除 | VSCode以外から削除された場合にリモートを自動で削除する。 |
よきVSCodeライフを♡