nushell 右提示,显示异常问题

结论:export-env 和 load-env 混用可能会导致环境变量不可预测。

现在是 2025/05/24

win
在这里插入图片描述
linux
在这里插入图片描述

环境:

  • win10 + nushell
  • nixos25 + nushell

我在俩个环境,都直接移除 load-env,使用 $env结果:nushell + starship Jetpack 显示正常

nu
cd $nu.data-dir # 进入 C:\Users\<??>\AppData\Roaming\nushell
# 找到你自己的 starship.nu 文件
# load-env { "BOB": "FOO", "JAY": "BAR" }
# 不建议使用上述语法改变 nushell $env 环境

export-env {
  $env.STARSHIP_SHELL = "nu"
  # $env.STARSHIP_CONFIG = ...
  $env.STARSHIP_SESSION_KEY = (random chars -l 16)
  # 一但 env 加载完成,starship starship_bin 寻找源文件的时间相差无几,我推荐直接使用 starship
  # let starship_bin = (which starship | get 0.path)
  $env.PROMPT_MULTILINE_INDICATOR = (
    ^starship prompt --continuation
  )

  # 清空默认提示符,完全使用 Starship
  $env.PROMPT_INDICATOR = ""

  # 左提示符(替换空格为-)
  $env.PROMPT_COMMAND = {||
    let starship_left = (
      ^starship prompt
      --cmd-duration $env.CMD_DURATION_MS
      $"--status=($env.LAST_EXIT_CODE)"
      --terminal-width (term size).columns
    )
    $starship_left
  }

  # 右提示符(替换空格为-)
  $env.PROMPT_COMMAND_RIGHT = {||
    (
      ^starship prompt
      --right
      --cmd-duration $env.CMD_DURATION_MS
      $"--status=($env.LAST_EXIT_CODE)"
      --terminal-width (term size).columns
    )
  }

  # ◄ 11s ◎ config nu --doc | nu-highlight | bat
  # 查看,nu初始化配置,存在相应的初始化,可以直接放弃假设代码(写起来真麻烦)
  # 确保右提示符显示在最后一行
  # $env.config = ( $env.config? | default {} | merge { render_right_prompt_on_last_line: true } )
  $env.config.render_right_prompt_on_last_line = true
}

Nushell 对环境变量和闭包的求值顺序有时候比较严格,export-env 和 load-env 混用可能会导致环境变量不可预测。

load-env 可能是设计用来加载静态的环境变量,不适合里面写动态的闭包命令。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值