2016-12-03 6 views
1

NeoVimの利点の1つは、より柔軟なプラグインアーキテクチャだと聞きました。 JSにプラグインを書き込むためのAPIはありますか?JavaScriptを使用してNeoVimプラグインを作成するにはどうすればよいですか?

は、これに関連しているように見えるいくつかのプロジェクトがあります。 neovim/node-hostneovim/node-clientfritzy/node-neovimrhysd/promised-neovim-client が、私はそれらを使用するかどうかはわかりません。 Vim functionsまたはコマンド、または同等の機能にアクセスするにはどうすればよいですか(これはどこに文書化されていますか)。


promised-neovim-clientは、そのstdinとstdoutに接続することでNeoVimプロセスとやりとりします。 NeoVimの中から、私はpromised-neovim-clientスクリプトを起動して、実行中のNeoVimプロセスのpidを渡すことができ、スクリプトはstdinとstdoutに付けることができましたか?

答えて

1

にして見てもらえ、quickstart in the README.mdに従ってください。

  1. コードサンプルをNvim 'runtimepath'のどこかのファイルに貼り付けてください。rplugin/node/foo.js
  2. 実行:UpdateRemotePlugins
  3. Nvimを再起動します。
+0

'node-host'のNeoVim APIはこれと同じですか:https://github.com/neovim/node-client/blob/master/index.d.ts? –

+0

':UpdateRemotePlugin'を実行すると、私は' function remote#host#UpdateRemotePlugins [6] ..を取得します。 47_RegistrationCommands [15] ..リモート#h ost#Require [13] ..プロバイダ#pythonx#14行が必要です。 Vim(let):E902:実行可能ファイルではありません。 関数remote#host#UpdateRemotePlugins [6] .. 47_RegistrationCommands [15] .. remote#h ost#Require [13] ] ..プロバイダ#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を拡張するには、
を使用することができます。これは、リモートの プラグイン、Nvimプロセスの
という直接通信チャネル(| RPC |を経由)を持つコプロセッサで実現されます。彼らが呼び出すことができる別のプロセスで実行するこれらのプラグインは、呼び出されていても


とプラグインのコードをメイン プロセスで実行されたかのようにイベントを受け取ります。

あなただけなきゃ話

A Neovimリモートプラグイン(rplugin)

リモートAPIへの任意のトランスポートメカニズムを介して到達できるリモートAPI(経由nvimために話す任意のプログラムです:TCPアドレス、名前付きパイプ、stdin/stdout、...)。

また、リモートAPIドキュメントも見つかりませんでした。 neovim/node-clientにいくつかの例がありました。

はあなたもinstallingノードホストした後、このfile

+1

マスターでは、リモートAPIは ':help api-funcs'に文書化されています。 –

関連する問題