vim plugin for asynchronous synchronisation of remote files and local files using rsync
- sync up or down project folder using rsync (with compression options etc. -> -avzhe ssh )
- ignore certains files or folder based on configuration file
- asynchronous operation
- project based configuration file
- auto sync up on file save
- works with ssh-keys (recommended) or plaintext password in config file
- rsync
- vim8 or neovim
- sshpass (optional: only needed when using plaintext password in config file)
Place this in your .vimrc:
Plug 'kenn7/vim-arsync'
" vim-arsync depedencies
Plug 'prabirshrestha/async.vim'
... then run the following in Vim:
:source %
:PlugInstall
use {'kenn7/vim-arsync',
requires = {
{'prabirshrestha/async.vim'}
}
}
... then run the following in Vim:
:source %
:PackerSync
Create a .vim-arsync
file on the root of your project that contains the following:
remote_host example.com
remote_user john
remote_port 22
remote_passwd secret
remote_path ~/temp/
local_path /home/ken/temp/vuetest/
ignore_path ["build/","test/"]
ignore_dotfiles 1
auto_sync_up 0
remote_or_local remote
sleep_before_sync 0
Required fields are:
remote_host
remote host to connect (must have ssh enabled)remote_path
remote folder to be synced
Optional fields are:
remote_user
username to connect withremote_passwd
password to connect with (requires sshpass) (needed if not using ssh-keys)remote_port
remote ssh port to connect to (default is 22)local_path
local folder to be synced (defaults to folder of .vim-arsync)ignore_path
list of ingored files/foldersignore_dotfiles
set to 1 to not sync dotfiles (e.g. .vim-arsync)auto_sync_up
set to 1 for activating automatic upload syncing on file saveremote_or_local
set to 'local' if you want to perform syncing localysleep_before_sync
set to x seconds if you want to sleep before sync(like compiling a file before syncing)local_options
overrides the default rsync options for case whereremote_or_local
is localremote_options
overrides the default rsync options for case whereremote_or_local
is remote
NOTE:
- fields can be commented out with
#
- rsync will receive the flags
-varze
for remote syncing and-var
for local syncing by default. Any flags you set usingrsync_flags
will override these flags.
If auto_sync_up
is set to 1, the plugin will automatically launch the :ARsyncUP
command
everytime a buffer is saved.
Setting rsync_flags
to include -ul
, for example, will use rsync's 'update' feature and will also copy over symlinks. Check out rsync's man page to see all the options it supports.
:ARshowConf
shows detected configuration:ARsyncUp
Syncs files up to the remote (upload local to remote):ARsyncUpDelete
Syncs files up to the remote (upload local to remote) and delete remote files not existing on local (be careful with that):ARsyncDown
Syncs files down from the remote (download remote to local)
Commands can be mapped to keyboard shortcuts enhance operations
- run more tests
- deactivate auto sync on error
- better handle comments in conf file
This plugin was inspired by vim-hsftp but vim-arsync offers more (rsync, ignore, async...).
This plugins uses the async.vim library for async operation with vim and neovim.