Nushell
安装 Nu !
快速开始
  • Nushell 之书
  • 命令参考列表
  • 实战指南
  • 语言参考指南
  • 贡献指南
博客
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
GitHub
安装 Nu !
快速开始
  • Nushell 之书
  • 命令参考列表
  • 实战指南
  • 语言参考指南
  • 贡献指南
博客
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
GitHub
  • 实战指南

    • 实战指南
    • 设置
    • 帮助
    • 系统
    • 解析
    • 外部 Shell 脚本
    • 模式匹配
    • 自定义补全器
    • 外部命令补全器
    • 模块的应用
    • 处理文件
    • Git
    • 解析 Git 日志
    • 使用 input listen 对按键进行操作
    • HTTP
    • Direnv
    • ssh-agent
    • 高级表格工作流
    • Polars vs Pandas vs Nushell
    • jq vs Nushell

设置

为了充分利用 nu,重要的是设置你的路径和环境以便于访问。 还有其他方法可以查看这些值和变量,但是设置你的 nu 配置将使这变得容易得多,因为这些具有跨平台支持。


配置你的路径和其他环境变量

在你的 env.nu 中,你可以设置你的环境。

要配置环境变量,你使用 $env 变量:

$env.TITLE = 'Nu Test'
$env.VALUE = 123

要向 PATH 环境变量添加路径,你可以追加它们:

$env.PATH ++= ['~/.local/bin']

因为你可以追加路径列表,所以你可以一次追加多个。你也可以使用子命令来在线构造路径。

$env.PATH ++= [ '~/.local/bin', ($env.CARGO_HOME | path join "bin") ]

因为 PATH 顺序很重要,你可能希望 前置 你的路径,这样它们优先于具有相同名称的其他可执行文件:

use std/util "path add"
path add '~/.local/bin'

更多信息,请参阅关于 环境变量 和 PATH 配置 的文档。

如何列出你的环境变量

$env
# => ─────────────────────────────────┬────────────────────────────────────────────
# =>  ALLUSERSPROFILE                 │ C:\ProgramData
# =>  CARGO_PKG_AUTHORS               │ The Nu Project Contributors
# =>  CARGO_PKG_DESCRIPTION           │ A new type of shell
# =>  CARGO_PKG_HOMEPAGE              │ https://www.nushell.sh
# =>  CARGO_PKG_LICENSE               │ MIT
# =>  CARGO_PKG_LICENSE_FILE          │
# =>  CARGO_PKG_NAME                  │ nu
# =>  CARGO_PKG_REPOSITORY            │ https://github.com/nushell/nushell
# =>  CARGO_PKG_VERSION               │ 0.59.0
# =>  CARGO_PKG_VERSION_MAJOR         │ 0

让我们练习一下,使用 vim(或你选择的编辑器)在我们的 env.nu 文件中设置 $EDITOR

vim $nu.env-path

注意:如果你从未使用过 vim 并且想要退出,输入 :q! 将在不保存的情况下关闭。

转到文件末尾并添加

$env.EDITOR = 'vim'

或 emacs、vscode 或任何你喜欢的编辑器。不要忘记程序需要在 PATH 上可访问 并在 linux/mac 上使用 exec nu 重新加载你的配置,或在 windows 上重新启动你的 nushell。

你现在应该能够轻松地运行 config nu 或 config env 并编辑这些文件。


如何获取单个环境变量的值

$env.APPDATA

使用钩子通过环境变量导出状态

像 starship 这样的附加工具会在每个提示出现时与 nushell 一起运行。 特别是 starship 会用自己的提示替换默认提示。 为了最大兼容性,starship 二进制文件将在每次提示渲染时运行 并且是绝对无状态的。 然而,Nushell 在单个实例中是非常有状态的。

钩子 允许注册自定义回调函数。 在这种情况下,pre_prompt 钩子非常有用。 有了它,我们可以将状态信息导出为环境变量,例如,当前激活了哪些 覆层。

# 使用覆层列表设置 NU_OVERLAYS,对 starship 提示有用
$env.config.hooks.pre_prompt = ($env.config.hooks.pre_prompt | append {||
  let overlays = overlay list | slice 1..
  if not ($overlays | is-empty) {
    $env.NU_OVERLAYS = $overlays | str join ", "
  } else {
    $env.NU_OVERLAYS = null
  }
})

现在在 starship 中,我们可以使用这个环境变量来显示哪些模块是活动的。

[env_var.NU_OVERLAYS]
symbol = '📌 '
format = 'with [$symbol($env_value )]($style)'
style = 'red'
在GitHub上编辑此页面
Contributors: voyage200🍬
Prev
实战指南
Next
帮助