mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-03 17:24:29 +00:00 
			
		
		
		
	doc: "--remote" is not supported #14936
There are plans to support the --remote-xx stuff (or something like it): #1750 #8326 But we don't need this doc meanwhile.
This commit is contained in:
		@@ -1,189 +0,0 @@
 | 
			
		||||
*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*
 | 
			
		||||
 | 
			
		||||
When compiled with the |+clientserver| option, Vim can act as a command
 | 
			
		||||
server.  It accepts messages from a client and executes them.  At the same
 | 
			
		||||
time, Vim can function as a client and send commands to a Vim server.
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
				There is one optional init command: +{cmd}.
 | 
			
		||||
				This must be an Ex command that can be
 | 
			
		||||
				followed by "|".
 | 
			
		||||
				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 >
 | 
			
		||||
				 vim --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-wait [+{cmd}] {file} ...				*--remote-wait*
 | 
			
		||||
				As --remote, but wait for files to complete
 | 
			
		||||
				(unload) in remote Vim.
 | 
			
		||||
   --remote-wait-silent [+{cmd}] {file} ...		*--remote-wait-silent*
 | 
			
		||||
				As --remote-wait, but don't complain if there
 | 
			
		||||
				is no server.
 | 
			
		||||
							*--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-tab-wait*
 | 
			
		||||
   --remote-tab-wait		Like --remote-wait but open each file in a new
 | 
			
		||||
				tabpage.
 | 
			
		||||
 | 
			
		||||
						*--remote-tab-wait-silent*
 | 
			
		||||
   --remote-tab-wait-silent	Like --remote-wait-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.
 | 
			
		||||
 | 
			
		||||
Examples ~
 | 
			
		||||
 | 
			
		||||
Edit "file.txt" in an already running GVIM server: >
 | 
			
		||||
    gvim --remote file.txt
 | 
			
		||||
 | 
			
		||||
Edit "file.txt" in an already running server called FOOBAR: >
 | 
			
		||||
    gvim --servername FOOBAR --remote file.txt
 | 
			
		||||
 | 
			
		||||
Edit "file.txt" in server "FILES" if it exists, become server "FILES"
 | 
			
		||||
otherwise: >
 | 
			
		||||
    gvim --servername FILES --remote-silent file.txt
 | 
			
		||||
 | 
			
		||||
This doesn't work, all arguments after --remote will be used as file names: >
 | 
			
		||||
    gvim --remote --servername FOOBAR file.txt
 | 
			
		||||
 | 
			
		||||
Edit file "+foo" in a remote server (note the use of "./" to avoid the special
 | 
			
		||||
meaning of the leading plus): >
 | 
			
		||||
    vim --remote ./+foo
 | 
			
		||||
 | 
			
		||||
Tell the remote server "BLA" to write all files and exit: >
 | 
			
		||||
    vim --servername BLA --remote-send '<C-\><C-N>:wqa<CR>'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
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.  If the
 | 
			
		||||
specified name is not available, a postfix is applied until a free name is
 | 
			
		||||
encountered, i.e. "gvim1" for the second invocation of gvim on a particular
 | 
			
		||||
X-server.  The resulting name is available in the servername builtin variable
 | 
			
		||||
|v:servername|.  The case of the server name is ignored, thus "gvim" and
 | 
			
		||||
"GVIM" are considered equal.
 | 
			
		||||
 | 
			
		||||
When Vim is invoked with --remote, --remote-wait or --remote-send it will try
 | 
			
		||||
to locate the server name determined by the invocation name and --servername
 | 
			
		||||
argument as described above.  If an exact match is not available, the first
 | 
			
		||||
server with the number postfix will be used.  If a name with the number
 | 
			
		||||
postfix is specified with the --servername argument, it must match exactly.
 | 
			
		||||
 | 
			
		||||
If no server can be located and --remote or --remote-wait was used, Vim will
 | 
			
		||||
start up according to the rest of the command line and do the editing by
 | 
			
		||||
itself.  This way it is not necessary to know whether gvim is already started
 | 
			
		||||
when sending command to it.
 | 
			
		||||
 | 
			
		||||
The --serverlist argument will cause Vim to print a list of registered command
 | 
			
		||||
servers on the standard output (stdout) and exit.
 | 
			
		||||
 | 
			
		||||
Win32 Note: Making the Vim server go to the foreground doesn't always work,
 | 
			
		||||
because MS-Windows doesn't allow it.  The client will move the server to the
 | 
			
		||||
foreground when using the --remote or --remote-wait argument and the server
 | 
			
		||||
name starts with "g".
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
The --remote-wait argument does the same thing and additionally sets up to
 | 
			
		||||
wait for each of the files to have been edited.  This uses the BufUnload
 | 
			
		||||
event, thus as soon as a file has been unloaded, Vim assumes you are done
 | 
			
		||||
editing it.
 | 
			
		||||
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!
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
FUNCTIONS
 | 
			
		||||
								*E240* *E573*
 | 
			
		||||
There are a number of Vim functions for scripting the command server.  See
 | 
			
		||||
the description in |eval.txt| or use CTRL-] on the function name to jump to
 | 
			
		||||
the full explanation.
 | 
			
		||||
 | 
			
		||||
    synopsis				     explanation ~
 | 
			
		||||
    remote_startserver( name)		     run a server
 | 
			
		||||
    remote_expr( server, string, idvar)      send expression
 | 
			
		||||
    remote_send( server, string, idvar)      send key sequence
 | 
			
		||||
    serverlist()			     get a list of available servers
 | 
			
		||||
    remote_peek( serverid, retvar)	     check for reply string
 | 
			
		||||
    remote_read( serverid)		     read reply string
 | 
			
		||||
    server2client( serverid, string)	     send reply string
 | 
			
		||||
    remote_foreground( server)		     bring server to the front
 | 
			
		||||
 | 
			
		||||
See also the explanation of |CTRL-\_CTRL-N|.  Very useful as a leading key
 | 
			
		||||
sequence.
 | 
			
		||||
The {serverid} for server2client() can be obtained with expand("<client>")
 | 
			
		||||
 | 
			
		||||
==============================================================================
 | 
			
		||||
2. X11 specific items					*x11-clientserver*
 | 
			
		||||
				    *E247* *E248* *E251* *E258* *E277*
 | 
			
		||||
 | 
			
		||||
The communication between client and server goes through the X server.  The
 | 
			
		||||
display of the Vim server must be specified.  The usual protection of the X
 | 
			
		||||
server is used, you must be able to open a window on the X server for the
 | 
			
		||||
communication to work.  It is possible to communicate between different
 | 
			
		||||
systems.
 | 
			
		||||
 | 
			
		||||
By default, a GUI Vim will register a name on the X-server by which it can be
 | 
			
		||||
addressed for subsequent execution of injected strings.  Vim can also act as
 | 
			
		||||
a client and send strings to other instances of Vim on the same X11 display.
 | 
			
		||||
 | 
			
		||||
When an X11 GUI Vim (gvim) is started, it will try to register a send-server
 | 
			
		||||
name on the 'VimRegistry' property on the root window.
 | 
			
		||||
 | 
			
		||||
An empty --servername argument will cause the command server to be disabled.
 | 
			
		||||
 | 
			
		||||
To send commands to a Vim server from another application, read the source
 | 
			
		||||
file src/if_xcmdsrv.c, it contains some hints about the protocol used.
 | 
			
		||||
 | 
			
		||||
==============================================================================
 | 
			
		||||
3. Win32 specific items					*w32-clientserver*
 | 
			
		||||
 | 
			
		||||
Every Win32 Vim can work as a server, also in the console.  You do not need a
 | 
			
		||||
version compiled with OLE.  Windows messages are used, this works on any
 | 
			
		||||
version of MS-Windows.  But only communication within one system is possible.
 | 
			
		||||
 | 
			
		||||
Since MS-Windows messages are used, any other application should be able to
 | 
			
		||||
communicate with a Vim server.
 | 
			
		||||
 | 
			
		||||
When using gvim, the --remote-wait only works properly this way: >
 | 
			
		||||
 | 
			
		||||
	start /w gvim --remote-wait file.txt
 | 
			
		||||
<
 | 
			
		||||
 vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
 | 
			
		||||
		Reference in New Issue
	
	Block a user