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'
... then run the following in Vim:
:source %
:PlugInstall
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_hostremote host to connect (must have ssh enabled)remote_pathremote folder to be synced
Optional fields are:
remote_userusername to connect withremote_passwdpassword to connect with (requires sshpass) (needed if not using ssh-keys)remote_portremote ssh port to connect to (default is 22)local_pathlocal folder to be synced (defaults to folder of .vim-arsync)ignore_pathlist of ingored files/foldersignore_dotfilesset to 1 to not sync dotfiles (e.g. .vim-arsync)auto_sync_upset to 1 for activating automatic upload syncing on file saveremote_or_localset to 'local' if you want to perform syncing localysleep_before_syncset to x seconds if you want to sleep before sync(like compiling a file before syncing)
NB: fields can be commented out with #
If auto_sync_up is set to 1, the plugin will automatically launch the :ARsyncUP command
everytime a buffer is saved.
:ARshowConfshows detected configuration:ARsyncUpSyncs files up to the remote (upload local to remote):ARsyncUpDeleteSyncs files up to the remote (upload local to remote) and delete remote files not existing on local (be careful with that):ARsyncDownSyncs files down from the remote (download remote to local)
Commands can be mapped to keyboard shortcuts enhance operations
- run more tests
- handle -u (update) feature of rsync ?
- 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 ships with the async.vim library for async operation with vim and neovim.