답변:
Neovim remote 는 neovim 프로세스를 제어하기위한 python 스크립트입니다. vim 스타일 --servername 및 --remote 옵션이 있습니다. 이것이 지금 다중 터미널 작업 환경에 사용하는 것입니다.
언급 한 바와 같이 모든 클라이언트 서버 기능은 Neovim에서 제거되었습니다. X11 공유 메모리를 사용하고 Neovim이 X11 지원을 제거했기 때문입니다.
그러나 :help --servername
Neovim에서 사용 하면 serverstart()
함수 에 대한 문서가 작성 됩니다.
serverstart([{address}]) serverstart()
Opens a named pipe or TCP socket at {address} for clients to
connect to and returns {address}. If no address is given, it
is equivalent to:
:call serverstart(tempname())
$NVIM_LISTEN_ADDRESS is set to {address} if not already set.
--servername
The Vim command-line option --servername can be imitated:
nvim --cmd "let g:server_addr = serverstart('foo')"
소켓이 만들어집니다 /tmp/
; :echo v:servername
경로를 참조하십시오 . 보다 결정적인 주소를 사용하는 것이 더 유용 serverstart('/tmp/nvim-remote')
할 것입니다 (예 : --serverstart
이미 존재하는 경우 Vim과 같이 숫자를 추가하지 않으므로 함수로 래핑하고 싶을 수도 있습니다).
RPC API를 사용하여 명령을 보낼 수 있습니다. 내가 찾을 수있는 한 Neovim (meh)으로 명령을 보낼 수있는 방법이 없습니다. API 클라이언트 중 하나 를 설치해야합니다 . 예를 들어 참조 Python API 클라이언트 (Neovim remote가 사용하는 것) :
import neovim
nvim = neovim.attach('socket', path='/tmp/nvim-remote')
try:
nvim.command(':e foo')
finally:
nvim.quit()
echo ... >> /tmp/nvim-remove
쉘 명령을 사용하여 같은 바이트를 보낼 수 있지만 RPC API는 다소 중요한 비 텍스트 프로토콜 ( "MessagePack RPC")을 사용하여 정확히 어떤 바이트를 보낼지 알아내는 것이이 게시물에 너무 많은 노력을 기울였습니다. -)
:help rpc
Neovim의 RPC API에 대한 자세한 내용 을 참조하십시오 .
NB :help remote.txt
뿐만 아니라 다른 많은 도움말 항목 (예 : help server2client()
기타)도 Neovim에 여전히 존재하지만 그 중 어느 것도 작동하지 않습니다. 이 기능을 제거한 사람은 꽤 거친 작업을 한 것 같습니다.
:terminal
. 이 정보가 주어지면 놀라 울 정도로 쉬웠습니다.
:help x11-clientserver
그것을 확인하는 것 같다 "클라이언트와 서버 간의 통신이 X 서버를 통해 간다 [..] 비 GUI 빔 X11 디스플레이에 접근 할 수있는 (| xterm을-클립 보드 | 사용), 또한 명령 서버 것처럼 행동 할 수 있습니다. 서버 이름이 명시 적으로 제공됩니다 "...