首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用NeoVim编写JavaScript插件?

如何用NeoVim编写JavaScript插件?
EN

Stack Overflow用户
提问于 2016-12-03 02:28:32
回答 2查看 2.8K关注 0票数 5

我听说NeoVim的优点之一是具有更灵活的插件体系结构。有用JS编写插件的API吗?

有些项目似乎与此相关:新病毒/节点-宿主新病毒/节点-客户端fritzy/node-新生押韵/承诺-新客户,但我不知道如何使用它们。我如何访问Vim函数或命令,或者类似的功能(这在哪里有文档)?

承诺-新客户端通过附加到它的stdin和stdout与NeoVim进程进行交互。所以,也许在NeoVim内部,我可以启动一个承诺好的新客户端脚本,并将正在运行的NeoVim进程的pid传递给它,并且脚本可以附加到它的stdin和stdout上?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-17 19:27:15

  1. 安装节点-客户端
    • npm install -g neovim
    • 运行:checkhealth确认。

  1. 快速启动中,将示例代码粘贴到rplugin/node/index.js中的某个地方(例如,~/.config/nvim/rplugin/node/index.js)。
  2. 运行:UpdateRemotePlugins
  3. 重新开始。
  4. 尝试:SetMyLine命令(在上面的代码示例中定义)。

样本代码

代码语言:javascript
运行
复制
function onBufWrite() {
  console.log('Buffer written!');
}

module.exports = (plugin) => {
  function setLine() {
    plugin.nvim.setLine('A line, for your troubles');
  }
  plugin.registerCommand('SetMyLine', [plugin.nvim.buffer, setLine]);
  plugin.registerAutocmd('BufWritePre', onBufWrite, { pattern: '*' });
};
票数 7
EN

Stack Overflow用户

发布于 2016-12-16 05:34:27

您绝对可以用javascript编写新的插件。来自plugin.txt#L7

扩展性是Nvim的主要目标。任何编程语言都可以使用。 在不改变Nvim本身的情况下扩展Nvim。这是通过远程插件实现的,协同进程具有一个直接的通信通道(通过与 Nvim进程。 即使这些插件在单独的进程中运行,它们也可以调用, 并接收事件,就像插件的代码在主进程中执行一样。

你只需要和远程api交谈

Neovim远程插件(rplugin)是通过远程API与nvim对话的任何程序(可以通过任意传输机制( TCP地址、命名管道、stdin/stdout、.)到达。

我也找不到远程API文档。在neovim/node-client中有一些例子。

你也能看看这个文件吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40943639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档