##はじめに
前に後輩と、vi, emacs, sublimeの比較話をしていたときに、ssh経由でファイル編集する方法がemacsであるよという話をし、そういえば、sublimeではできないのかと思い出した。
もちろんできます。ということでやってみよう。
##インストール
今回使うのは、SFTP Packageというもの、これはssh経由、ftp経由で指定したディレクトリをローカルとシンクし、アップロードできるというパッケージ。
Package Control: Install Packageから、SFTPで検索すればでてくるので、インストール。コマーシャル版だそうだけど、扱いはsublimeと同等で基本的にFreeで使える模様。
##使い方
まずローカルのディレクトリに、シンクさせるためのディレクトリを用意します。
$ mkdir sftpsync
サイドバーのプロジェクトフォルダを右クリックし、「SFTP/FTP」→「Map to Remote」を選択します。
すると、「sftp-config.json」という設定ファイルがプロジェクトフォルダのルートにできるので、このファイルを編集してサーバ情報などを設定していきます。
1. {
2. // The tab key will cycle through the settings when first created
3. // Visit http://wbond.net/sublime_packages/sftp/settings for help
4. // sftp, ftp or ftps
5. "type": "sftp",
6.
7. "save_before_upload": true,
8. "upload_on_save": false,
9. "sync_down_on_open": false,
10. "sync_skip_deletes": false,
11. "confirm_downloads": false,
12. "confirm_sync": true,
13. "confirm_overwrite_newer": false,
14. "host": "example.com",
15. "user": "username",
16. //"password": "password",
17. //"port": "22",
18. "remote_path": "/example/path/",
19. "ignore_regexes": [
20. "\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json",
21. "sftp-settings\\.json", "/venv/", "\\.svn", "\\.hg", "\\.git",
22. "\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini"
23. ],
24. //"file_permissions": "664",
25. //"dir_permissions": "775",
26. //"extra_list_connections": 0,
27.
28. "connect_timeout": 30,
29. //"keepalive": 120,
30. //"ftp_passive_mode": true,
31. //"ssh_key_file": "~/.ssh/id_rsa",
32. //"sftp_flags": ["-F", "/path/to/ssh_config"],
33. //"preserve_modification_times": false,
34. //"remote_time_offset_in_hours": 0,
35. //"remote_encoding": "utf-8",
36. //"remote_locale": "C",
37. }
上記のhost, user, remote_pathを自分の設定にして保存します。
注意:remote_pathはsyncしたサーバ側のディレクトリの絶対パスを指定してください。また、指定したディレクトリ下をすべてsyncするので、大量のデータが入っているディレクトリを扱う場合は注意が必要です。
次に、remoteにあるディレクトリをローカルに持ってきます。サイドバーにあるディレクトリを右クリック。SFTP/FTPのタブを開き、Sync Remote -> Local… を実行します。syncプロセスの後、サーバサイドのソースがローカルにsyncされます。後は編集し、上記、画面のUpload FolderやファイルごとにUpload Fileを行うことで、編集したデータをサーバサイドに反映することができます。