2016-12-03 1 views
1

NeoVim의 장점 중 하나는보다 유연한 플러그인 아키텍처라고 들었습니다. JS에 플러그인을 작성하기위한 API가 있습니까?JavaScript로 NeoVim 플러그인을 작성하려면 어떻게해야합니까?

이 관련이있는 것으로 보이는 일부 프로젝트가 있습니다 neovim/node-host, neovim/node-client, fritzy/node-neovim, rhysd/promised-neovim-client 하지만 난 그들을 사용하는 방법을 모르겠어요. Vim functions 또는 명령 또는 이와 동등한 기능에 액세스하려면 어떻게해야합니까?


약속-neovim 클라이언트는 표준 입력과 표준 출력에 부수하여 NeoVim 프로세스와 상호 작용한다. 어쩌면 NeoVim에서 promised-neovim-client 스크립트를 시작하고 실행중인 NeoVim 프로세스의 pid를 전달할 수 있으며 스크립트가 stdin 및 stdout에 첨부 될 수 있습니까?

답변

1

installing 후 노드 호스트에서 살펴 수 없습니다.

  1. Nvim 'runtimepath'어딘가에 rplugin/node/foo.js 파일에 코드 샘플을 붙여 넣으십시오.
  2. 실행 :UpdateRemotePlugins.
  3. Nvim을 다시 시작하십시오.
+0

NeoVim API는'node-host'에서 다음과 같습니다 : https://github.com/neovim/node-client/blob/master/index.d.ts? –

+0

': UpdateRemotePlugin'을 실행할 때'function remote # host # UpdateRemotePlugins [6] .. 47_RegistrationCommands [15] .. remote # h ost # 필요 [13] ..공급자 # pythonx # 14 행을 요구하십시오. Vim (let) : E902 : ""이 실행 파일이 아닙니다. function remote # host # UpdateRemotePlugins [6] .. 47_RegistrationCommands [15] .. remote # h ost # Require [13] ] .. provider # pythonx # 21 행을 요구함. Vim (for) : E121 : 정의되지 않은 변수 : channel_id' –

+1

신경 쓰지 마라. 'sudo pip3 install neovim'이 수정했다. –

1

javascript에는 분명히 neovim 플러그인을 쓸 수 있습니다. https://github.com/neovim/neovim/blob/master/runtime/doc/remote_plugin.txt#L7

확장 성은 Nvim의 기본 목표입니다. 모든 프로그래밍 언어는 Nvim 자체를 변경하지 않고 Nvim을 확장하기 위해
으로 사용될 수 있습니다. 이것은 원격 플러그인, 직접 통신 채널 (RPC |를 통해)과 Nvim 프로세스
을 가진 코 프로세서로 달성됩니다. 그들이 호출 할 수있는 별도의 프로세스에서 실행이 플러그인이 호출 할 수 있지만

,
받을 이벤트 단지 플러그인의 코드는 메인 과정에서 실행되는 것처럼.

당신은 원격 API를

Neovim 원격 플러그인 (rplugin) 임의의 전송 메커니즘을 통해 도달 할 수있는 원격 API (을 통해 nvim하는 이야기 어떤 프로그램이 단지 돼 토론 : TCP 주소 , 명명 된 파이프, stdin/stdout, ...).

또한 원격 API 설명서를 찾을 수 없습니다. neovim/node-client에 몇 가지 예가 있습니다.

당신은 또한 quickstart in the README.md 다음이 file

+1

마스터에서는 원격 API가 이제': help api-funcs'에 기록됩니다. –

관련 문제