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 %
:PlugInstalluse {'kenn7/vim-arsync',
requires = {
{'prabirshrestha/async.vim'}
}
}... then run the following in Vim:
:source %
:PackerSyncCreate 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)local_optionsoverrides the default rsync options for case whereremote_or_localis localremote_optionsoverrides the default rsync options for case whereremote_or_localis remote
NOTE:
- fields can be commented out with
# - rsync will receive the flags
-varzefor remote syncing and-varfor local syncing by default. Any flags you set usingrsync_flagswill 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.
: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
- 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.