Quick links: help overview · quick reference · user manual toc · reference manual toc
remote.txt    Nvim


                  VIM REFERENCE MANUAL    by Bram Moolenaar


Vim client-server communication                         client-server

                                      Type gO to see the table of contents.

==============================================================================
1. Common functionality                                 clientserver

Nvim's RPC functionality allows clients to programmatically control Nvim. Nvim
itself takes command-line arguments that cause it to become a client to another
Nvim running as a server. These arguments match those provided by Vim's
clientserver option.

The following command line arguments are available:

    argument                    meaning 

   --remote [+{cmd}] {file} ...                                 --remote
                                Open the file list in a remote Vim.  When
                                there is no Vim server, execute locally.
                                Vim allows one init command: +{cmd}.
                                This must be an Ex command that can be
                                followed by "|". It's not yet supported by
                                Nvim.
                                The rest of the command line is taken as the
                                file list.  Thus any non-file arguments must
                                come before this.
                                You cannot edit stdin this way --.
                                The remote Vim is raised.  If you don't want
                                this use 
                                 nvim --remote-send "<C-\><C-N>:n filename<CR>"

   --remote-silent [+{cmd}] {file} ...                  --remote-silent
                                As above, but don't complain if there is no
                                server and the file is edited locally.
                                                        --remote-tab
   --remote-tab                 Like --remote but open each file in a new
                                tabpage.
                                                        --remote-tab-silent
   --remote-tab-silent          Like --remote-silent but open each file in a
                                new tabpage.
                                                                --remote-send
   --remote-send {keys}         Send {keys} to server and exit.  The {keys}
                                are not mapped.  Special key names are
                                recognized, e.g., "<CR>" results in a CR
                                character.
                                                                --remote-expr
   --remote-expr {expr}         Evaluate {expr} in server and print the result
                                on stdout.
                                                                --server
   --server {addr}              Connect to the named pipe or socket at the
                                given address for executing remote commands.
                                See --listen for specifying an address when
                                starting a server.

Examples 

Start an Nvim server listening on a named pipe at '~/.cache/nvim/server.pipe': 
    nvim --listen ~/.cache/nvim/server.pipe

Edit "file.txt" in an Nvim server listening at '~/.cache/nvim/server.pipe': 
    nvim --server ~/.cache/nvim/server.pipe --remote file.txt

This doesn't work, all arguments after --remote will be used as file names: 
    nvim --remote --server ~/.cache/nvim/server.pipe file.txt

Tell the remote server to write all files and exit: 
    nvim --server ~/.cache/nvim/server.pipe --remote-send '<C-\><C-N>:wqa<CR>'


REMOTE EDITING

The --remote argument will cause a :drop command to be constructed from the
rest of the command line and sent as described above.
Note that the --remote and --remote-wait arguments will consume the rest of
the command line.  I.e. all remaining arguments will be regarded as filenames.
You can not put options there!


==============================================================================
2. Missing functionality                        E5600 clientserver-missing

Vim supports additional functionality in clientserver that's not yet
implemented in Nvim. In particular, none of the "wait" variants are supported
yet. The following command line arguments are not yet available:

    argument                    meaning 

   --remote-wait [+{cmd}] {file} ...                            --remote-wait
                                Not yet supported by Nvim.
                                As --remote, but wait for files to complete
                                (unload) in remote Vim.
   --remote-wait-silent [+{cmd}] {file} ...             --remote-wait-silent
                                Not yet supported by Nvim.
                                As --remote-wait, but don't complain if there
                                is no server.
                                                        --remote-tab-wait
   --remote-tab-wait            Not yet supported by Nvim.
                                Like --remote-wait but open each file in a new
                                tabpage.
                                                --remote-tab-wait-silent
   --remote-tab-wait-silent     Not yet supported by Nvim.
                                Like --remote-wait-silent but open each file
                                in a new tabpage.
                                                            --servername
   --servername {name}          Not yet supported by Nvim.
                                Become the server {name}.  When used together
                                with one of the --remote commands: connect to
                                server {name} instead of the default (see
                                below).  The name used will be uppercase.

                                                                --serverlist
   --serverlist                 Not yet supported by Nvim.
                                Output a list of server names.




SERVER NAME                                             client-server-name

By default Vim will try to register the name under which it was invoked (gvim,
egvim ...).  This can be overridden with the --servername argument.  Nvim
either listens on a named pipe or a socket and does not yet support this
--servername functionality.

 vim:tw=78:sw=4:ts=8:noet:ft=help:norl:


Quick links: help overview · quick reference · user manual toc · reference manual toc