Use SFTP and FTP features inside Atom, having the ability to upload and download files directly from inside Atom.
Remote Sync PRO is a fork of the remote-sync project which was abandoned in 2016. Remote Sync PRO fixes bugs and compatibility issues present in remote-sync, and will be bringing new features in the near future.
remote-sync-pro
-- The path to your diff tool executableYou can install this like any other Atom package, with one of these methods:
Open Atom
Open settings
Select "Install" tab
Search for remote-sync-pro
and click install
apm install remote-sync-pro
~/.atom/packages/
apm install
You can configure Remote Sync PRO using multiple methods:
.remote-sync.json
to your projectThe .remote-sync.json
in your project root will use these options:
Option | Datatype | Default | Details |
---|---|---|---|
transport |
String | "" | scp for SCP/SFTP, or ftp for FTP |
hostname |
String | "" | Remote host address |
port |
String | "" | Remort port to connect on (typically 22 for SCP/SFTP, 21 for FTP) |
username |
String | "" | Remote host username |
password |
String | "" | Remote host password |
keyfile |
String | "" | Absolute path to SSH key (only used for SCP) |
secure |
Boolean | false | Set to true for both control and data connection encryption (only used for FTP) |
passphrase |
String | "" | Passphrase for the SSH key (only used for SCP) |
useAgent |
String | false | Whether or not to use an agent process (only used for SCP) |
target |
String | "" | Target directory on remote host |
source |
String | "" | Source directory relative to project root |
ignore |
Array | [".remote-sync.json",".git/**"] | Array of minimatch patterns of files to ignore |
watch |
Array | [] | Array of files (relative to project root - starting with "/") to watch for changes |
uploadMirrors |
Array | [] | Transport mirror config array when upload |
uploadOnSave |
Boolean | false | Whether or not to upload the current file when saved |
saveOnUpload |
Boolean | false | Whether or not to save a modified file before uploading |
useAtomicWrites |
Boolean | false | Upload file using a temporary filename before moving to its final location (only used for SCP) |
deleteLocal |
Boolean | false | Whether or not to delete the local file / folder after remote delete |
{
"transport": "scp",
"hostname": "10.10.10.10",
"port": 22,
"username": "vagrant",
"password": "vagrant",
"keyfile": "/home/vagrant/.ssh/aws.pem",
"passphrase": "your_passphrase",
"target": "/home/vagrant/dirname/subdirname",
"ignore": [
".remote-sync.json",
".git/**"
],
"watch":[
"/css/styles.css",
"/index.html"
]
}
useAgent
example:{
"transport": "scp",
"hostname": "10.10.10.10",
"port": 22,
"username": "vagrant",
"useAgent": true,
"target": "/home/vagrant/dirname/subdirname",
"ignore": [
".remote-sync.json",
".git/**"
],
"watch":[
"/css/styles.css",
"/index.html"
]
}
{
"transport": "ftp",
"hostname": "10.10.10.10",
"port": 21,
"username": "vagrant",
"password": "vagrant",
"target": "/home/vagrant/dirname/subdirname",
"ignore": [
".remote-sync.json",
".git/**"
],
"watch":[
"/css/styles.css",
"/index.html"
]
}
{
"transport": "scp",
"hostname": "10.10.10.10",
"port": 22,
"username": "vagrant",
"password": "vagrant",
"keyfile": "/home/vagrant/.ssh/aws.pem",
"passphrase": "your_passphrase",
"target": "/home/vagrant/dirname/subdirname",
"ignore": [
".remote-sync.json",
".git/**"
],
"watch":[
"/css/styles.css",
"/index.html"
],
"uploadMirrors":[
{
"transport": "scp",
"hostname": "10.10.10.10",
"port": 22,
"username": "vagrant",
"password": "vagrant",
"keyfile": "/home/vagrant/.ssh/aws.pem",
"passphrase": "your_passphrase",
"target": "/home/vagrant/dirname/subdirname_one",
"ignore": [
".remote-sync.json",
".git/**"
]
},
{
"transport": "ftp",
"hostname": "10.10.10.10",
"port": 21,
"username": "vagrant",
"password": "vagrant",
"target": "/home/vagrant/dirname/subdirname_two",
"ignore": [
".remote-sync.json",
".git/**"
]
}
]
}
You can use any GUI app which takes two arguments without parameters like meld or gvimdiff.
If you want to use app with parameters or console app, try this:
code (Visual Studio Code)
create shell script atom-diff-code
in /usr/local/bin/
with command
#!/bin/bash
code -d -n --disable-extensions $1 $2
Then set atom-diff-code
in Diff tool command setting in remote-sync-pro in atom
vim in Ubuntu:
atom-diff-vimdiff
#!/bin/bash
gnome-terminal -x bash -c "vimdiff $1 $2"
diff in Ubuntu:
atom-diff-diff
#!/bin/bash
gnome-terminal -x bash -c "diff $1 $2; exec bash"