Nushell
书
Cookbook
博客
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
GitHub
书
Cookbook
博客
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
GitHub
  • 入门篇

    • 介绍
    • 安装 Nu
    • 以 Nushell 的方式思考
    • 在系统中四处移动
  • Nu 基础篇

    • 数据类型
    • 加载数据
    • 处理字符串
    • 处理列表
    • 处理表格
    • 管道
    • 命令索引
  • Nushell 编程

    • 自定义命令
    • 别名
    • 运算符
    • 变量和子表达式
    • 脚本
    • 模块
    • 覆层
  • Nu 作为 Shell 使用

    • 配置
    • 环境
    • 标准输入、输出和退出码
    • 转移到系统
    • 配置第三方提示
    • Shell 中的 Shell
    • Reedline,Nu 的行编辑器
    • 外部命令
    • 自定义补全
    • Nu 的配色和主题
    • 钩子
  • 迁移到 Nu

    • 从 Bash 到 Nu
    • 从其他 Shell 或 DSL 到 Nu
    • 从命令式语言到 Nu
    • 从函数式语言到 Nu
    • Nushell 运算符
  • 高级篇

    • DataFrames
    • 元数据
    • 创建你自己的错误
    • 并行
    • 插件

插件

Nu 可以通过插件进行扩展。插件的行为与 Nu 的内置命令很相似,另外的好处是它们可以与 Nu 本身分开添加。

Nu 的插件是可执行的;Nu 在需要时启动它们,并通过 stdin, stdout 和 stderr 与它们进行通信。Nu 的插件可以使用 JSON 或 Cap'n Proto 作为它们的通信编码方式。

添加一个插件

要添加一个插件,请调用plugin add命令来告诉 Nu 在哪里可以找到它,与此同时,你还需要告诉 Nushell 这个插件使用什么方式进行编码。

Linux+macOS:

plugin add --encoding=capnp ./my_plugins/my-cool-plugin

Windows:

plugin add --encoding=capnp .\my_plugins\my-cool-plugin.exe

当 plugin add 被调用时:

  1. Nu 启动该插件并通过 stdin 向其发送 "签名" 信息;
  2. 插件通过 stdout 响应,包含其签名(名称、描述、参数、标志等)的消息;
  3. Nu 将插件的签名保存在$nu.plugin-path位置的文件中,因此在注册之后的多次启动中都是有效的;

一旦注册,该插件就可以作为你的命令集的一部分被使用:

help commands | where is_plugin == true

示例

Nu 的主版本中包含了一些插件的例子,这些例子对学习插件协议的工作方式很有帮助:

  • Rust
  • Python

调试

调试插件的最简单方法是打印到 stderr;插件的标准错误流会通过 Nu 重定向并显示给用户。

帮助

Nu 的插件文档尚在撰写中,如果你对某件事情不确定 Nu Discord上的 #plugins 频道是一个提问的好地方!

在GitHub上编辑此页面
Contributors: Justin Ma, Hofer-Julian, 24601, Andy Gayton, 0x4D5352
Prev
并行