Home Explore Blog CI



neovim

2nd chunk of `runtime/doc/provider.txt`
8b1c756894dcb0790d12e4ddebf8ec64d028cc0bb9de97da0000000100000fc2
 implemented as a Nvim remote-plugin).


RUBY QUICKSTART ~

To use Ruby plugins with Nvim, install the latest "neovim" RubyGem: >bash
    gem install neovim

Run |:checkhealth| to see if your system is up-to-date.


RUBY PROVIDER CONFIGURATION ~
						*g:loaded_ruby_provider*
To disable Ruby support: >vim
    let g:loaded_ruby_provider = 0
<
						*g:ruby_host_prog*
Command to start the Ruby host. By default this is "neovim-ruby-host". With
project-local Ruby versions (via tools like RVM or rbenv) setting this can
avoid the need to install the "neovim" gem in every project.

To use an absolute path (e.g. to an rbenv installation): >vim
    let g:ruby_host_prog = '~/.rbenv/versions/2.4.1/bin/neovim-ruby-host'

To use the RVM "system" Ruby installation: >vim
    let g:ruby_host_prog = 'rvm system do neovim-ruby-host'

==============================================================================
Perl integration				*provider-perl*

Nvim supports Perl |remote-plugin|s on Unix platforms. Support for polling STDIN
on MS-Windows is currently lacking from all known event loop implementations.
The Vim legacy |perl-vim| interface is also supported (which is itself
implemented as a Nvim remote-plugin).
https://github.com/jacquesg/p5-Neovim-Ext

Note: Only perl versions from 5.22 onward are supported.

PERL QUICKSTART~

To use perl remote-plugins with Nvim, install the "Neovim::Ext" cpan package: >bash
    cpanm -n Neovim::Ext

Run |:checkhealth| to see if your system is up-to-date.


PERL PROVIDER CONFIGURATION~
						*g:loaded_perl_provider*
To disable Perl support: >vim
    :let g:loaded_perl_provider = 0
<
						*g:perl_host_prog*
Command to start the Perl executable. Must be set before any
check for has("perl").  >vim
    let g:perl_host_prog = '/path/to/perl'
<
==============================================================================
Node.js integration				*provider-nodejs*

Nvim supports Node.js |remote-plugin|s.
https://github.com/neovim/node-client/


NODEJS QUICKSTART~

To use javascript remote-plugins with Nvim, install the "neovim" npm package: >bash
    npm install -g neovim

Run |:checkhealth| to see if your system is up-to-date.


NODEJS PROVIDER CONFIGURATION~
						*g:loaded_node_provider*
To disable Node.js support: >vim
    :let g:loaded_node_provider = 0
<
						*g:node_host_prog*
Command to start the Node.js host. Setting this makes startup faster.

By default, Nvim searches for "neovim-node-host" using "npm root -g", which
can be slow. To avoid this, set g:node_host_prog to the host path: >vim
    let g:node_host_prog = '/usr/local/bin/neovim-node-host'
<
==============================================================================
Clipboard integration			      *provider-clipboard* *clipboard*

Nvim has no direct connection to the system clipboard. Instead it depends on
a |provider| which transparently uses shell commands to communicate with the
system clipboard or any other clipboard "backend".

To ALWAYS use the clipboard for ALL operations (instead of interacting with
the "+" and/or "*" registers explicitly): >vim
    set clipboard+=unnamedplus

See 'clipboard' for details and options.

							      *clipboard-tool*
The presence of a working clipboard tool implicitly enables the "+" and "*"
registers. Nvim supports these clipboard tools, in order of priority:

- |g:clipboard| : User override (if set to a dict or any string "name" below;
  e.g. `g:clipboard="tmux"` forces tmux clipboard and skips auto-detection).
- "pbcopy"    : pbcopy, pbpaste (macOS)
- "wl-copy"   : wl-copy, wl-paste (if $WAYLAND_DISPLAY is set)
- "wayclip"   : waycopy, waypaste (if $WAYLAND_DISPLAY is set)
- "xsel"      : xsel (if $DISPLAY is set)
- "xclip"     : xclip (if $DISPLAY is set)
- "lemonade"  : lemonade (for SSH) https://github.com/pocke/lemonade
- "doitclient": doitclient (for SSH) https://www.chiark.greenend.org.uk/~sgtatham/doit/
- "win32yank" : *win32yank* (Windows)
- "putclip"   : putclip, getclip (Windows) https://cygwin.com/packages/summary/cygutils.html

Title: Nvim Providers: Perl, Node.js, and Clipboard Integration
Summary
This section covers the setup and configuration of Perl and Node.js providers in Nvim, detailing the installation of necessary packages ('Neovim::Ext' for Perl, 'neovim' npm package for Node.js) and configuration options to disable providers or specify the executable path. It also discusses clipboard integration in Nvim, which relies on external tools to interact with the system clipboard. It lists supported clipboard tools and explains how to configure Nvim to always use the clipboard for all operations.