no vim eu posso fazer vim --servername foo
e vim --servername foo --remote-silent bar.txt
abrir arquivos em uma instância do vim de várias janelas de terminal (via tmux ou o que for). Como a mesma coisa é alcançada no NeoVim?
neovim
clientserver
Rafael Vega
fonte
fonte
:help x11-clientserver
parece confirmar: "A comunicação entre cliente e servidor passa pelo servidor X. [..] Um não GUI Vim com acesso ao monitor X11 (| xterm-clipboard | enabled), também pode atuar como um servidor de comando se um nome de servidor é fornecido explicitamente "...O Neovim remote é um script python para controlar processos neovim. Possui o estilo vim --servername e --remote. É isso que uso agora no meu ambiente de trabalho com vários terminais.
fonte
Como mencionado, todos os recursos do servidor de clientes foram removidos no Neovim. Isso ocorre porque eles usam a memória compartilhada X11 e o Neovim removeu o suporte ao X11.
No entanto, se eu usar o
:help --servername
Neovim, acabo na documentação daserverstart()
função:Isso fará um soquete
/tmp/
; veja:echo v:servername
o caminho. Provavelmente é mais útil usar um endereço mais determinístico (por exemploserverstart('/tmp/nvim-remote')
, embora você provavelmente deseje agrupar isso em uma função, pois ele não acrescentará um número como o do Vim,--serverstart
se isso já existir).Você pode enviar comandos com a API RPC. Até onde eu sei, não há como enviar comandos para isso apenas com Neovim (meh). Você precisará instalar um dos clientes da API . Por exemplo, com o cliente de API Python de referência (que também é o que o Neovim usa remotamente):
Provavelmente você pode enviar os mesmos bytes com um
echo ... >> /tmp/nvim-remove
comando shell, mas a API RPC usa um protocolo não-trivial de texto não-trivial ("MessagePack RPC") e descobrir quais bytes enviar exatamente foi um esforço demais para esta postagem; -)Veja
:help rpc
os detalhes completos sobre a API RPC da Neovim.Nota
:help remote.txt
: assim como muitos outros itens de ajuda (comohelp server2client()
muitos outros) ainda existem no Neovim, mas nada disso funciona. Parece que quem removeu esse recurso fez um trabalho bastante desleixado.fonte
:terminal
. Dada essa informação, foi maravilhosamente fácil.