Rsync.nvim
neovim plugin which synchronises project with rsync on save.
Install / Use
/learn @OscarCreator/Rsync.nvimREADME
rsync.nvim
Asynchronously transfer your files with rsync on save.
Dependencies
- cargo
- rsync
Installation
-- packer.nvim
use {
'OscarCreator/rsync.nvim',
run = 'make',
requires = {'nvim-lua/plenary.nvim'},
config = function()
require("rsync").setup()
end
}
-- lazy.nvim
{
'OscarCreator/rsync.nvim',
build = 'make',
dependencies = 'nvim-lua/plenary.nvim',
config = function()
require("rsync").setup()
end,
}
Usage
rsync.nvim looks for .nvim/rsync.toml file by default in the root of your
project. The path can also be set with the project_config_path key in the
plugin configuration.
The current options available:
# this is the path to the remote. Can be either a local/remote filepath.
remote_path = "../copy/"
# or if using ssh
remote_path = "user@host:/home/user/path/"
# specifying a file(s) which should be synced "down" but are on ignore files.
# this is a workaround to sync down files which are included on ignore files.
remote_includes = "build.log"
# or using an array if multiple files are needed.
remote_includes = ["build.log", "build/generated.json"]
# specifying an gitignore file(s). Files matching patterns in ignore files are
# excluded from "SyncUp" and "SyncDown" except ones specified in `remote_includes`.
# For example, to exclude file(s) in the global gitignore and the project gitignore:
ignorefile_paths = ["~/.gitignore", ".gitignore"]
Commands
| Name | Action | | ------------------ | ----------------------------------------------------------------------------------------- | | RsyncDown | Sync all files from remote* to local folder. | | RsyncDownFile | Sync specified or current file from remote to local folder. | | RsyncUp | Sync all files from local* to remote folder. | | RsyncUpFile | Sync specified or current file from local to remote. This requires rsync version >= 3.2.3 | | RsyncLog | Open log file for rsync.nvim. | | RsyncConfig | Print out user config. | | RsyncProjectConfig | Print or reload current project config. | | RsyncSaveSync | Temporarily disable/enable/toggle sync when saving. |
*: Files which are excluded are, everything in .gitignore and .nvim folder.
Configuration
Global configuration settings with the default values
---@type RsyncConfig
{
-- triggers `RsyncUp` when fugitive thinks something might have changed in the repo.
fugitive_sync = false,
-- triggers `RsyncUp` when you save a file.
sync_on_save = true,
-- the path to the project configuration
project_config_path = ".nvim/rsync.toml",
-- called when the rsync command exits, provides the exit code and the used command
on_exit = function(code, command)
end,
-- called when the rsync command prints to stderr, provides the data and the used command
on_stderr = function(data, command)
end,
}
Similar projects
Related Skills
node-connect
336.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
336.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.9kCommit, push, and open a PR
