Post selections or buffers to online paste bins. Save the URL to a register, or dont.
- Neovim 0.5+
- A
curl
executable in your$PATH
Use your package manager.
Setup
-- options shown with default values
require("paperplanes").setup({
register = "+",
provider = "0x0.st",
provider_options = {},
notifier = vim.notify or print,
})
register
- any valid register name or falseprovider
- See provider list.provider_options
- passed to selected provider, see list of providers below for accepted optionsnotifier
- any function that accepts a string, should show that string in some way.
Commands
Post selection or buffer to configured provider, sets configured register and print's the result.
-
:PP
-> Post current buffer. -
:[range]PP
-> Post range.- Vim does not support column aware ranges when using commands. Use
post_selection
via a map for that behaviour.
- Vim does not support column aware ranges when using commands. Use
Functions
See :h paperplanes
for more complete documentation.
Functions are provided in snake_case
and kebab-case
(post_string
and
post-string
).
All functions accept a callback
argument which is called with url, nil
or
nil, errors
.
provider-name
and provider-options
are optional and the default provider
will be used if not given.
Functions to not automatically print the url or set any registers.
post_string(content, metadata, callback, provider-name, provider-options)
post_range(buffer, start_pos, end_pos, callback, provider-name, provider-options)
post_selection(callback, provider-name, provider-options)
post_buffer(buffer, callback, provider-name, provider-options)
paperplanes supports the following providers, see sites for TOS and features.
- https://0x0.st (
provider = "0x0.st"
) - https://paste.rs (
provider = "paste.rs"
) - https://paste.sr.ht (
provider = "sr.ht"
)command
:"curl"
(default) or"hut"
.token
: PAT token string, or function returning token string, required ifcommand = "curl" | nil
.
- https://gist.github.com (
provider = "gist"
)command
:"curl"
(default) or"gh"
.token
: PAT token string or function returning token string, required ifcommand = "curl" | nil
.
- https://dpaste.org (
provider = "dpaste.org"
) - https://ray.so (
provider = "ray.so"
) - https://mystb.in (
provider = "mystb.in"
) - http://ix.io (
provider = "ix.io"
)- Endpoint is HTTP only, requires
insecure = true
explicit opt in.
- Endpoint is HTTP only, requires
- http://sprunge.us (
provider = "sprunge.us"
)- Endpoint is HTTP only, requires
insecure = true
explicit opt in.
- Endpoint is HTTP only, requires
To create a new provider, see :h paperplanes
and
fnl/paperplanes/providers/*.fnl
.
paperplanes is not affiliated with any provider in any manner.
Building paperplanes requires hotpot.nvim v0.9.7+.
The relevant lua|
files should be build when saving any file inside fnl/
.
See CHANGELOG.md
.