aboutsummaryrefslogtreecommitdiff
path: root/runtime/doc/provider.txt
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/doc/provider.txt')
-rw-r--r--runtime/doc/provider.txt158
1 files changed, 158 insertions, 0 deletions
diff --git a/runtime/doc/provider.txt b/runtime/doc/provider.txt
new file mode 100644
index 0000000000..7380fb9346
--- /dev/null
+++ b/runtime/doc/provider.txt
@@ -0,0 +1,158 @@
+*provider.txt* {Nvim}
+
+
+ NVIM REFERENCE MANUAL by Thiago de Arruda
+
+
+Providers *provider*
+
+Nvim delegates some features to dynamic "providers".
+
+==============================================================================
+Python integration *provider-python*
+
+Nvim supports the Vim legacy |python-vim| and |python3| interfaces via
+external Python interpreters connected via |RPC|,
+
+Note: Only the Vim 7.3 API is supported; bindeval (Vim 7.4) is not.
+
+
+PYTHON QUICKSTART ~
+
+If you used a package manager to install Nvim there's a good chance that
+it also provides the `neovim` Python package. If it doesn't, follow these
+steps to install the package with Python's package manager, `pip`.
+
+Note: Depending on your system, `pip` might refer to Python 2 or Python 3,
+ which is why the following instructions mention `pip2` or `pip3`
+ explicitly. If one of these is not available, try `pip`.
+
+To use Vim Python 2/3 plugins with Nvim:
+
+- For Python 2 plugins, make sure an interpreter for Python 2.6 or 2.7 is
+ available in your `$PATH`, then install the `neovim` Python package systemwide: >
+ $ sudo pip2 install --upgrade neovim
+<
+ or for the current user: >
+ $ pip2 install --user --upgrade neovim
+<
+- For Python 3 plugins, make sure an interpreter for Python 3.3 or above is
+ available in your `$PATH`, then install the `neovim` Python package systemwide: >
+ $ sudo pip3 install --upgrade neovim
+<
+ or for the current user: >
+ $ pip3 install --user --upgrade neovim
+<
+Note: The `--upgrade` flag ensures you have the latest version even if
+ a previous version was already installed.
+
+PYTHON PROVIDER CONFIGURATION ~
+ *g:python_host_prog*
+Set `g:python_host_prog` to point Nvim to a specific Python 2 interpreter: >
+ let g:python_host_prog = '/path/to/python'
+<
+ *g:python3_host_prog*
+Set `g:python3_host_prog` to point Nvim to a specific Python 3 interpreter: >
+ let g:python3_host_prog = '/path/to/python3'
+<
+ *g:loaded_python_provider*
+To disable Python 2 support: >
+ let g:loaded_python_provider = 1
+<
+ *g:loaded_python3_provider*
+To disable Python 3 support: >
+ let g:loaded_python3_provider = 1
+<
+ *g:python_host_skip_check*
+Set `g:python_host_skip_check` to disable the Python 2 interpreter check.
+Note: This requires you to install the python-neovim module properly. >
+ let g:python_host_skip_check = 1
+<
+ *g:python3_host_skip_check*
+Set `g:python3_host_skip_check` to disable the Python 3 interpreter check.
+Note: This requires you to install the python3-neovim module properly. >
+ let g:python3_host_skip_check = 1
+
+
+TROUBLESHOOTING *python-trouble*
+
+If you have trouble with a plugin that uses the `neovim` Python client, use
+the |:CheckHealth| command to diagnose your setup.
+
+ *:CheckHealth*
+:CheckHealth[!] Check your setup for common problems that may be keeping a
+ plugin from functioning correctly. Include the output of
+ this command in bug reports to help reduce the amount of
+ time it takes to address your issue. With "!" the output
+ will be placed in a new buffer which can make it easier to
+ save to a file or copy to the clipboard.
+
+==============================================================================
+Ruby integration *provider-ruby*
+
+Nvim supports the Vim legacy |ruby-vim| interface via external Ruby
+interpreters connected via |RPC|.
+
+
+RUBY QUICKSTART ~
+
+To use Vim Ruby plugins with Nvim, just install the latest `neovim` RubyGem: >
+ $ gem install neovim
+
+
+RUBY PROVIDER CONFIGURATION ~
+ *g:loaded_ruby_provider*
+To disable Ruby support: >
+ let g:loaded_ruby_provider = 1
+
+
+==============================================================================
+Clipboard integration *provider-clipboard* *clipboard*
+
+Nvim has no direct connection to the system clipboard. Instead it is
+accessible through a |provider| which transparently uses shell commands for
+communicating with the clipboard.
+
+Clipboard access is implicitly enabled if any of the following clipboard tools
+are found in your `$PATH`.
+
+ - xclip
+ - xsel (newer alternative to xclip)
+ - pbcopy/pbpaste (Mac OS X)
+ - lemonade (for SSH) https://github.com/pocke/lemonade
+ - doitclient (for SSH) http://www.chiark.greenend.org.uk/~sgtatham/doit/
+
+The presence of a suitable clipboard tool implicitly enables the '+' and '*'
+registers.
+
+If you want to ALWAYS use the clipboard for ALL operations (as opposed
+to interacting with the '+' and/or '*' registers explicitly), set the
+following option:
+>
+ set clipboard+=unnamedplus
+<
+See 'clipboard' for details and more options.
+
+==============================================================================
+X11 selection mechanism *clipboard-x11* *x11-selection*
+
+The clipboard providers for X11 store text in what is known as "selections".
+Selections are "owned" by an application, so when the application is closed,
+the selection text is lost.
+
+The contents of selections are held by the originating application (e.g., upon
+a copy), and only passed on to another application when that other application
+asks for them (e.g., upon a paste).
+
+ *quoteplus* *quote+*
+
+There are three documented X11 selections: `PRIMARY`, `SECONDARY`, and `CLIPBOARD`.
+`CLIPBOARD` is typically used in X11 applications for copy/paste operations
+(`Ctrl-c`/`v`), while `PRIMARY` is used for the last selected text, which is
+generally inserted with the middle mouse button.
+
+Nvim's X11 clipboard providers only utilize the `PRIMARY` and `CLIPBOARD`
+selections, used for the '*' and '+' registers, respectively.
+
+==============================================================================
+ vim:tw=78:ts=8:noet:ft=help:norl: