配置
快速入门
虽然 Nushell 提供了许多用于管理其启动和配置的选项,但新用户只需几个简单的步骤即可开始:
告诉 Nushell 使用哪个编辑器:
$env.config.buffer_editor = <path_to_your_preferred_editor>例如:
$env.config.buffer_editor = "code" # 或 $env.config.buffer_editor = "nano" # 或 $env.config.buffer_editor = "hx" # 或 $env.config.buffer_editor = "vi" # 带参数 $env.config.buffer_editor = ["emacsclient", "-s", "light", "-t"] # 等等使用以下命令编辑
config.nu:config nu这将在上面定义的编辑器中打开当前的
config.nu。将每次 Nushell 启动时应运行的命令添加到此文件中。一个很好的初始示例可能是上面的
buffer_editor设置。你可以使用以下命令找到可用设置的详细列表:
config nu --doc | nu-highlight | less -R保存、退出编辑器,然后启动一个新的 Nushell 会话以加载这些设置。
就是这样!需要时,下面有更多详细信息...
提示
要从 Nushell 内部查看此文档的简化版本,请运行:
config nu --doc | nu-highlight | less -R配置概述
Nushell 使用多个可选的配置文件。这些文件按以下顺序加载:
加载的第一个文件是
env.nu,历史上用于覆盖环境变量。但是,当前的“最佳实践”建议是使用config.nu和下面的自动加载目录来设置所有环境变量(和其他配置)。config.nu通常用于覆盖默认的 Nushell 设置、定义(或导入)自定义命令,或运行任何其他启动任务。加载
$nu.vendor-autoload-dirs中的*.nu文件。这些目录旨在用于供应商和包管理器的启动文件。加载
$nu.user-autoload-dirs中的*.nu文件。这些文件可用于任何启动任务,是模块化配置的好方法。login.nu运行仅在 Nushell 作为登录 shell 运行时才应发生的命令或处理配置。
默认情况下,env.nu、config.nu 和 login.nu 从 $nu.default-config-dir 目录中读取。例如:
$nu.default-config-dir
# macOS
# => /Users/me/Library/Application Support/nushell
# Linux
# => /home/me/.config/nushell
# Windows
# => C:\Users\me\AppData\Roaming\nushellNushell 首次启动时,将创建配置目录以及一个空的(除了注释)env.nu 和 config.nu。
提示
你可以使用 config nu 命令在默认文本编辑器中快速打开 config.nu。同样,config env 命令将打开 env.nu。
这要求你已使用以下任一方式配置了默认编辑器:
- Nushell 的
$env.config.buffer_editor设置 $env.VISUAL或$env.EDITOR环境变量
例如,将此行放入你的 config.nu 中,以便在 Visual Studio Code 中编辑文件:
$env.config.buffer_editor = 'code'config.nu 中的常见配置任务:
提示
一些用户可能更喜欢一个“单体”配置文件,其中大部分或所有启动任务都在一个地方。config.nu 可用于此目的。
其他用户可能更喜欢“模块化”配置,其中每个文件处理一组更小、更集中的任务。自动加载目录中的文件可用于创建此体验。
config.nu 通常用于:
- 为 Nushell 和其他应用程序设置环境变量
- 在
$env.config中设置 Nushell 设置 - 加载模块或源文件,以便其命令随时可用
- 在启动时运行任何其他应用程序或命令
设置环境变量
另请参阅
环境章节涵盖了有关如何设置和访问环境变量的其他信息。
路径配置
与大多数 shell 一样,Nushell 搜索名为 PATH(或其变体)的环境变量。
提示
与某些 shell 不同,Nushell 尝试对环境变量“不区分大小写”。Path、path、PATH,甚至 pAtH 都是同一环境变量的允许变体。有关详细信息,请参阅环境 - 大小写敏感性。
当 Nushell 启动时,它通常继承 PATH 作为一个字符串。但是,Nushell 会自动将其转换为 Nushell 列表以便于访问。这意味着你可以使用例如以下方式追加到路径:
$env.path ++= ["~/.local/bin"]标准库还包括一个辅助命令。默认的 path add 行为是前置一个目录,使其比路径的其余部分具有更高的优先级。例如,可以将以下内容添加到你的启动配置中:
use std/util "path add"
path add "~/.local/bin"
path add ($env.CARGO_HOME | path join "bin")提示
请注意上面示例中 path join 的使用。此命令正确连接两个路径组件,无论路径分隔符是否存在。有关此类别中的更多命令,请参阅 help path。
提示符配置
Nushell 提供了许多提示符配置选项。默认情况下,Nushell 包括:
- 一个包含当前目录的提示符,如果它在主目录下(或其子目录),则使用
~缩写。 - 一个紧接在提示符右侧的提示指示符。在正常编辑模式下,默认为
>,在 Vi 插入模式下为:。请注意字符后的额外空格,以提供命令与提示符之间的分隔。 - 一个带有日期和时间的右提示符
- 一个在当前命令行跨越多行时显示的指示符 - 默认为
:::
控制这些提示符组件的环境变量是:
$env.PROMPT_COMMAND: 提示符本身$env.PROMPT_COMMAND_RIGHT: 可以出现在终端右侧的提示符$env.PROMPT_INDICATOR: Emacs 模式指示符$env.PROMPT_INDICATOR_VI_NORMAL: Vi-normal 模式指示符$env.PROMPT_INDICATOR_VI_INSERT: Vi-insert 模式指示符$env.PROMPT_MULTILINE_INDICATOR: 多行指示符
这些变量中的每一个都接受以下任一值:
- 一个字符串,在这种情况下,组件将静态显示为该字符串。
- 一个闭包(无参数),在这种情况下,组件将根据闭包的代码动态显示。
null,在这种情况下,组件将恢复为其内部默认值。
提示
例如,要禁用右提示符,请将以下内容添加到你的启动配置中:
$env.PROMPT_COMMAND_RIGHT = ""
# 或
$env.PROMPT_COMMAND_RIGHT = {||}瞬态提示符
Nushell 还支持瞬态提示符,它允许在执行命令行后显示不同的提示符。这在几种情况下很有用:
- 使用多行提示符时,瞬态提示符可以是更精简的版本。
- 删除瞬态多行指示符和右提示符可以简化从终端的复制。
与上面的普通提示符命令一样,每个瞬态提示符都可以接受一个(静态)字符串、一个(动态)闭包或一个 null 以使用 Nushell 内部默认值。
控制瞬态提示符组件的环境变量是:
$env.TRANSIENT_PROMPT_COMMAND: 执行命令行后的提示符本身$env.TRANSIENT_PROMPT_COMMAND_RIGHT: 可以出现在终端右侧的提示符$env.TRANSIENT_PROMPT_INDICATOR: Emacs 模式指示符$env.TRANSIENT_PROMPT_INDICATOR_VI_NORMAL: Vi-normal 模式指示符$env.TRANSIENT_PROMPT_INDICATOR_VI_INSERT: Vi-insert 模式指示符$env.TRANSIENT_PROMPT_MULTILINE_INDICATOR: 多行指示符
提示
Nushell 将 TRANSIENT_PROMPT_COMMAND_RIGHT 和 TRANSIENT_PROMPT_MULTILINE_INDICATOR 设置为空字符串 (""),以便在输入上一个命令后它们都消失。这简化了从终端的复制和粘贴。
要禁用此功能并始终显示这些项目,请设置:
$env.TRANSIENT_PROMPT_COMMAND_RIGHT = null
$env.TRANSIENT_PROMPT_MULTILINE_INDICATOR = nullENV_CONVERSIONS
某些变量,例如包含多个路径的变量,通常在其他 shell 中存储为以冒号分隔的字符串。Nushell 可以自动将这些转换为更方便的 Nushell 列表。ENV_CONVERSIONS 变量指定了环境变量如何:
- 在 Nushell 启动时从字符串转换为值 (from_string)
- 在运行外部命令时从值转换回字符串 (to_string)
ENV_CONVERSIONS 是一个记录,其中:
- 每个键是要转换的环境变量
- 每个值是另一个包含以下内容的记录:
{ from_string: <closure> to_string: <closure> }
提示
如上所述,操作系统路径变量由 Nushell 自动转换。因此,它可以在你的启动配置中作为列表处理,而无需出现在 ENV_CONVERSIONS 中。其他以冒号分隔的路径,如 XDG_DATA_DIRS,则不会自动转换。
要添加其他转换,请使用 merge 将其合并到 $env.ENV_CONVERSIONS 记录中。例如,要为 XDG_DATA_DIRS 变量添加转换:
$env.ENV_CONVERSIONS = $env.ENV_CONVERSIONS | merge {
"XDG_DATA_DIRS": {
from_string: {|s| $s | split row (char esep) | path expand --no-symlink }
to_string: {|v| $v | path expand --no-symlink | str join (char esep) }
}
}LS_COLORS
与许多类似 ls 的实用程序一样,Nushell 的目录列表利用 LS_COLORS 环境变量来定义应用于某些文件类型和模式的样式/颜色。
$env.config 记录中的 Nushell 设置
在 $env.config 记录中更改设置
更改 Nushell 行为的主要机制是 $env.config 记录。虽然此记录作为环境变量访问,但与大多数其他变量不同,它:
- 不会从父进程继承。相反,它由 Nushell 本身用某些默认值填充。
- 不会导出到由 Nushell 启动的子进程。
要检查 $env.config 中的当前设置,只需键入变量名:
$env.config提示
由于 Nushell 提供了如此多的自定义选项,最好将其发送到分页器,例如:
$env.config | table -e | less -R
# 或者,如果安装了 bat:
$env.config | table -e | bat -p记录每个设置的附录将很快提供。同时,可以使用以下命令在 Nushell 中查看每个设置的缩写文档:
config nu --doc | nu-highlight | bat
# 或
config nu --doc | nu-highlight | less -R为避免覆盖现有设置,最好只为所需的配置键分配更新的值,而不是整个 config 记录。换句话说:
错误
$env.config = {
show_banner: false
}这将重置任何其他已更改的设置,因为整个记录将被覆盖。
正确
$env.config.show_banner = false这仅更改 show_banner 键/值对,使所有其他键保持其现有值。
某些键本身也是记录。覆盖这些记录是可以的,但最佳实践是在这样做时设置所有值。例如:
$env.config.history = {
file_format: sqlite
max_size: 1_000_000
sync_on_enter: true
isolation: true
}删除欢迎消息
注
本节直接从横幅消息链接,因此它重复了上面的一些信息。
要删除每次 Nushell 启动时显示的欢迎消息:
键入
config nu来编辑你的配置文件。如果你收到有关未定义编辑器的错误:
$env.config.buffer_editor = <path to your preferred editor> # 例如: $env.config.buffer_editor = "code" $env.config.buffer_editor = "vi" # 或带编辑器参数: $env.config.buffer_editor = ["emacsclient", "-s", "light", "-t"]然后重复步骤 1。
将以下行添加到文件末尾:
$env.config.show_banner = false保存并退出你的编辑器。
重新启动 Nushell 以测试更改。
其他启动配置
更改默认目录
重要
如下所述,本节中的变量必须在 Nushell 启动之前设置。
一些控制 Nushell 启动文件位置的变量必须在 Nushell 加载之前设置。这通常由父进程完成,例如:
运行 Nushell 的终端应用程序
操作系统或窗口管理器。当将 Nushell 作为登录 shell 运行时,这可能是唯一可用的机制。
例如,在 Windows 上,你可以通过控制面板设置环境变量。选择开始菜单并搜索*“环境变量”*。
在使用 PAM 的 Linux 系统上,可以使用
/etc/environment(以及其他系统特定的机制)。父 shell。例如,在运行
nu之前从bash导出值。
启动变量
影响 Nushell 文件位置的变量是:
$env.XDG_CONFIG_HOME: 如果设置了此环境变量,它将用于更改 Nushell 搜索其配置文件(如env.nu、config.nu、login.nu和<config>/autoload目录)的目录。历史记录和插件文件默认也存储在此目录中。Nushell 启动后,此值存储在
$nu.default-config-dir常量中。请参阅下面的使用常量。$env.XDG_DATA_HOME: 如果设置了此环境变量,Nushell 会将$nu.data-dir常量设置为此值。data-dir用于多个启动任务:($nu.data-dir)/completions被添加到$env.NU_LIB_DIRS搜索路径中。($nu.data-dir)/vendor/autoload作为nu.vendor-autoload-dirs中的最后一个路径添加。此目录中的文件将在其他供应商自动加载目录之后读取,从而覆盖其任何设置。
请注意,由
$nu.data-dir表示的目录及其任何子目录默认情况下都不会创建。这些目录的创建和使用由用户决定。$env.XDG_DATA_DIRS(仅限 Unix 平台):如果设置了此环境变量,它将用于按列出的顺序填充$nu.vendor-auto-load目录。列表中的第一个目录首先处理,这意味着最后读取的目录将能够覆盖以前的定义。
注意
XDG_* 变量不是 Nushell 特定的,不应设置为仅包含 Nushell 文件的目录。相反,应将环境变量设置为包含 nushell 目录的上级目录。
例如,如果你将 $env.XDG_CONFIG_HOME 设置为:
/users/username/dotfiles/nushell... Nushell 将在 /Users/username/dotfiles/nushell/nushell 中查找配置文件。正确的设置应该是:
/users/username/dotfiles另请记住,如果系统已经设置了 XDG 变量,那么这些目录中可能已经有正在使用的文件。更改位置可能需要你将其他应用程序的文件移动到新目录。
提示
你可以使用以下方法在“全新”环境中轻松测试配置更改。以下内容在 Nushell 内部运行,但可以适应其他 shell:
# 创建一个空的临时目录
let temp_home = (mktemp -d)
# 将配置路径设置为此目录
$env.XDG_CONFIG_HOME = $temp_home
# 将数据目录设置为此目录
$env.XDG_DATA_HOME = $temp_home
# 删除其他潜在的自动加载目录
$env.XDG_DATA_HOME = ""
# 在此环境中运行 Nushell
nu
# 编辑配置
config nu
# 退出子 shell
exit
# 运行临时配置
nu测试完配置后:
# 如果需要,删除临时配置目录
rm $temp_home重要提示: 然后退出父 shell,以免 XDG 更改意外传播到其他进程。
使用常量
一些重要的命令,如 source 和 use,有助于定义自定义命令(和其他定义),它们是解析时关键字。除其他外,这意味着所有参数必须在解析时已知。
换句话说, 解析时关键字不允许使用变量参数 。
但是,Nushell 创建了一些方便的常量,可用于帮助识别常见的文件位置。例如,你可以使用以下命令从默认配置目录中加载文件:
source ($nu.default-config-dir | path join "myfile.nu")因为常量值在解析时已知,所以它可以与 source 和 use 等解析时关键字一起使用。
另请参阅
有关此过程的更多详细信息,请参阅解析时常量求值。
$nu 常量
要查看内置 Nushell 常量的列表,请使用 $nu(包括美元符号)检查记录常量。
NU_LIB_DIRS 常量
Nushell 还可以使用 NU_LIB_DIRS 常量,其作用类似于上面提到的 $env.NU_LIB_DIRS 变量。但是,与 $env.NU_LIB_DIRS 不同,它可以在 config.nu 中定义和使用。例如:
# 定义模块和源搜索路径
const NU_LIB_DIRS = [
'~/myscripts'
]
# 从 ~/myscripts 目录加载 myscript.nu
source myscript.nu如果同时定义了变量 $env.NU_LIB_DIRS 和常量 NU_LIB_DIRS,则将搜索两组路径。常量 NU_LIB_DIRS 将首先被搜索并具有优先权。如果在这些目录中找到匹配名称的文件,搜索将停止。否则,它将继续进入 $env.NU_LIB_DIRS 搜索路径。
NU_PLUGIN_DIRS 常量
const NU_PLUGIN_DIRS 对插件搜索路径的作用方式相同。
以下 NU_PLUGIN_DIRS 配置将允许从以下位置加载插件:
nu可执行文件所在的目录。这通常是发布包中插件所在的位置。$nu.data-dirs中以正在运行的 Nushell 版本命名的目录(例如0.100.0)。$nu.config-path中的plugins目录。
const NU_PLUGIN_DIRS = [
($nu.current-exe | path dirname)
($nu.data-dir | path join 'plugins' | path join (version).version)
($nu.config-path | path dirname | path join 'plugins')
]颜色、主题和语法高亮
你可以在相关章节中了解有关设置颜色和主题的更多信息。
将 Nu 配置为登录 Shell
登录 shell 通常负责设置某些将由子 shell 和其他进程继承的环境变量。将 Nushell 设置为用户的默认登录 shell 时,你需要确保 login.nu 处理此任务。
许多应用程序会假定 POSIX 或 PowerShell 登录 shell,并提供修改由 POSIX 登录 shell 加载的系统或用户 profile(或 PowerShell 系统上的 .ps1 文件)的说明。
正如你现在可能已经注意到的,Nushell 不是 POSIX shell,也不是 PowerShell,它无法处理为这些 shell 编写的配置文件。你需要改为在 login.nu 中设置这些值。
要查找可能需要通过 login.nu 设置的环境变量,请通过从你以前的登录 shell 中运行 nu 来检查从登录 shell 继承的环境。运行:
$env | reject config | transpose key val | each {|r| echo $"$env.($r.key) = '($r.val)'"} | str join (char nl)查找第三方应用程序可能需要的任何值,并将这些值复制到你的 login.nu 中。其中许多值将不需要。例如,PS1 设置是 POSIX shell 中的当前提示符,在 Nushell 中将无用。
准备好后,将 Nushell 添加到你的 /etc/shells (Unix) 并 chsh,如安装章节中所述。
macOS: 保持 /usr/bin/open 为 open
某些工具(如 Emacs)依赖于 open 命令在 Mac 上打开文件。
由于 Nushell 有自己的 open 命令,其含义不同,它会遮蔽(覆盖)/usr/bin/open,因此这些工具在尝试使用该命令时会产生错误。
解决此问题的一种方法是为 Nushell 的 open 定义一个自定义命令,并在你的 config.nu 文件中为系统的 open 创建一个别名,如下所示:
alias nu-open = open
alias open = ^open将此行放入你的 config.nu 中以使其永久生效。
^ 符号告诉 Nushell 将以下命令作为外部命令运行,而不是作为 Nushell 内置命令。运行这些命令后,nu-open 将是 Nushell 内部版本,而 open 别名将调用 Mac 的外部 open。
有关更多信息,请参阅运行系统(外部)命令。
详细的配置启动过程
本节包含有关如何使用不同的配置(和标志)选项来更改 Nushell 启动行为的更详细描述。
启动阶段
以下阶段及其步骤可能在启动期间发生,具体取决于传递给 nu 的标志。有关每个标志如何影响该过程,请参阅紧随此表之后的标志行为:
| 步骤 | 阶段 | Nushell 操作 |
|---|---|---|
| 0. | (杂项) | 通过其内部 Rust 实现设置内部默认值。实际上,这可能要到“首次使用”设置或变量时才会发生,但对于控制 Nushell 行为的大多数(但不是所有)设置和变量,通常会有一个 Rust 默认值。然后,这些默认值可以被以下步骤取代。 |
| 1. | (主要) | 从调用进程继承其初始环境。这些最初将转换为 Nushell 字符串,但稍后可以使用 ENV_CONVERSIONS(见下文)转换为其他结构。 |
| 2. | (主要) | 获取配置目录。这取决于操作系统(请参阅 dirs::config_dir),但可以在所有平台上使用 XDG_CONFIG_HOME 覆盖,如上文所述。 |
| 3. | (主要) | 创建初始的 $env.NU_LIB_DIRS 变量。默认情况下,它是一个空列表。 |
| 4. | (主要) | 创建初始的 $NU_LIB_DIRS 变量。默认情况下,它包括(1)配置目录下的 scripts 目录,以及(2)默认数据目录($env.XDG_DATA_HOME 或 dirs crate 提供的默认值)下的 nushell/completions。这些目录默认情况下不会创建。 |
| 5. | (主要) | 创建初始的 $env.NU_PLUGIN_DIRS 变量。默认情况下,它是一个空列表。 |
| 6. | (主要) | 创建初始的 $NU_PLUGIN_DIRS 变量。默认情况下,这将包括(1)配置目录下的 plugins 目录,以及(2)当前运行的 nu/nu.exe 所在的目录。 |
| 7. | (主要) | 初始化内存中的 SQLite 数据库。这允许在以下配置文件中使用 stor 系列命令。 |
| 8. | (主要) | 处理命令行参数,例如 --plugin-config <file>、--plugins <list> 等。有关完整列表,请参阅 nu --help。 |
| 9. | (主要) | 获取 env.nu 和 config.nu 的路径。默认情况下,这些位于配置目录中,但可以使用 --env-config <path> 和 --config <path> 标志覆盖其中一个或两个。 |
| 10. | (主要) | 如果使用了 --include-path (-I) 标志,它将覆盖上面获得的默认 $env.NU_LIB_DIRS。 |
| 11. | (主要) | 从内部默认值加载初始的 $env.config 值。 |
| 12. | (主要) | 将搜索路径从继承的 string 转换为 Nushell list。 |
| 13. | (stdlib) | 将标准库和 std-rfc 加载到虚拟文件系统中。此时它不会被解析或求值。 |
| 14. | (stdlib) | 解析并求值 std/prelude,这将 banner 和 pwd 命令带入作用域。 |
| 15. | (主要) | 生成初始的 $nu 记录常量,以便可以在以下配置文件中使用 $nu.default-config-dir 等项。 |
| 16. | (主要) | 加载使用 --plugin 标志指定的任何插件。 |
| 17. | (repl) | 设置仅在 REPL 中应用的几个默认环境变量(与提示符相关的和 SHLVL)。请注意,使用闭包的与提示符相关的变量在 default_env.nu 中设置。 |
| 18. | (配置文件) (插件) | 处理用户的 plugin.msgpackz(位于配置目录中)中的签名,以便可以在以下配置文件中使用添加的插件。 |
| 19. | (配置文件) | 如果这是 Nushell 首次启动,则创建配置目录。“首次启动”取决于配置目录是否存在。 |
| 20. | (配置文件) | 同样,如果这是 Nushell 首次启动,则在该目录中创建一个基本上为空的(除了一些注释)env.nu 和 config .nu。 |
| 21. | (配置文件) (default_env.nu) | 从内部 default_env.nu 加载默认环境变量。可以使用以下命令查看此文件:config env --default | nu-highlight | less -R。 |
| 22. | (配置文件) (env.nu) | 将 PATH 变量转换为列表,以便在下一步中可以更轻松地访问它。 |
| 23. | (配置文件) (env.nu) | 加载(解析和求值)用户的 env.nu(其路径已在上面确定)。 |
| 24. | (配置文件) (config.nu) | 从内部 default_config.nu 加载一个最小的 $env.config 记录。可以使用以下命令查看此文件:config nu --default | nu-highlight | less -R。大多数未在 default_config.nu 中定义的值将使用其内部默认值自动填充到 $env.config 中。 |
| 25. | (配置文件) (config.nu) | 加载(解析和求值)用户的 config.nu(其路径已在上面确定)。 |
| 26. | (配置文件) (login) | 当 Nushell 作为登录 shell 运行时,加载用户的 login.nu。 |
| 27. | (配置文件) | 循环遍历供应商自动加载目录并加载找到的任何 .nu 文件。目录按 $nu.vendor-autoload-dirs 中的顺序处理,这些目录中的文件按字母顺序处理。 |
| 28. | (配置文件) | 循环遍历用户自动加载目录并加载找到的任何 .nu 文件。目录按 $nu.user-autoload-dirs 中的顺序处理,这些目录中的文件按字母顺序处理。 |
| 29. | (repl) 和 (stdlib) | 如果已配置,则显示横幅。 |
| 29. | (repl) | Nushell 进入正常的命令行(REPL)。 |
标志行为
| 模式 | 命令/标志 | 行为 |
|---|---|---|
| 普通 Shell | nu (无标志) | 除标记为 (login) 的所有启动步骤都会发生。 |
| 登录 Shell | nu --login/-l | 所有启动步骤都会发生。 |
| 命令字符串 | nu --commands <command-string> (或 -c) | 除标记为 (config files) 或 (repl) 的所有启动阶段都会发生。但是,(default_env) 和 (plugin) 会发生。前者允许在那里定义的路径 ENV_CONVERSIONS 发生。后者允许在命令字符串中使用插件。 |
| 脚本文件 | nu <script_file> | 与命令字符串相同。 |
| 无配置 | nu -n | 无论其他标志如何,(config files) 阶段都不会发生。 |
| 无标准库 | nu --no-std-lib | 无论其他标志如何,标记为 (stdlib) 的步骤都不会发生。 |
| 强制配置文件 | nu --config <file> | 强制上面标记为 (config.nu) 的步骤使用提供的配置 <file> 运行,除非还指定了 -n |
| 强制环境文件 | nu --env-config <file> | 强制上面标记为 (default_env.nu) 和 (env.nu) 的步骤使用指定的环境 <file> 运行,除非还指定了 -n |
场景
nu:- ✅ 使标准库可用
- ✅ 如果存在于配置目录中,则读取用户的
plugin.msgpackz文件 - ✅ 在内部加载
default_env.nu文件 - ✅ 如果存在于配置目录中,则加载用户的
env.nu文件 - ✅ 在内部加载
default_config.nu文件 - ✅ 如果存在于配置目录中,则加载用户的
config.nu文件 - ❌ 不读取个人
login.nu文件 - ✅ 进入 REPL
nu -c "ls":- ✅ 使标准库可用
- ✅ 如果存在于配置目录中,则读取用户的
plugin.msgpackz文件 - ✅ 在内部加载
default_env.nu文件 - ❌ 不加载用户的
env.nu - ❌ 不读取内部
default_config.nu文件 - ❌ 不读取用户的
config.nu文件 - ❌ 不读取用户的
login.nu文件 - ✅ 运行
ls命令并退出 - ❌ 不进入 REPL
nu -l -c "ls":- ✅ 使标准库可用
- ✅ 如果存在于配置目录中,则读取用户的
plugin.msgpackz文件 - ✅ 在内部加载
default_env.nu文件 - ✅ 如果存在于配置目录中,则加载用户的
env.nu文件 - ✅ 在内部加载
default_config.nu文件 - ✅ 如果存在于配置目录中,则加载用户的
config.nu文件 - ✅ 如果存在于配置目录中,则加载用户的
login.nu文件 - ✅ 运行
ls命令并退出 - ❌ 不进入 REPL
nu -l -c "ls" --config foo_config.nu- 与上面相同,但从配置目录读取名为
foo_config.nu的备用配置文件
- 与上面相同,但从配置目录读取名为
nu -n -l -c "ls":- ✅ 使标准库可用
- ❌ 不读取用户的
plugin.msgpackz - ❌ 不读取内部
default_env.nu - ❌ 不加载用户的
env.nu - ❌ 不读取内部
default_config.nu文件 - ❌ 不读取用户的
config.nu文件 - ❌ 不读取用户的
login.nu文件 - ✅ 运行
ls命令并退出 - ❌ 不进入 REPL
nu test.nu:- ✅ 使标准库可用
- ✅ 如果存在于配置目录中,则读取用户的
plugin.msgpackz文件 - ✅ 在内部加载
default_env.nu文件 - ❌ 不加载用户的
env.nu - ❌ 不读取内部
default_config.nu文件 - ❌ 不读取用户的
config.nu文件 - ❌ 不读取用户的
login.nu文件 - ✅ 作为脚本运行
test.nu文件 - ❌ 不进入 REPL
nu --config foo_config.nu test.nu- ✅ 使标准库可用
- ✅ 如果存在于配置目录中,则读取用户的
plugin.msgpackz文件 - ✅ 在内部加载
default_env.nu文件 - ❌ 不加载用户的
env.nu(未指定--env-config) - ✅ 在内部加载
default_config.nu文件。请注意,default_config.nu总是在用户配置之前处理 - ✅ 如果存在于配置目录中,则加载用户的
config.nu文件 - ❌ 不读取用户的
login.nu文件 - ✅ 作为脚本运行
test.nu文件 - ❌ 不进入 REPL
nu -n --no-std-lib(最快的 REPL 启动):- ❌ 不使标准库可用
- ❌ 不读取用户的
plugin.msgpackz - ❌ 不读取内部
default_env.nu - ❌ 不加载用户的
env.nu - ❌ 不读取内部
default_config.nu文件 - ❌ 不读取用户的
config.nu文件 - ❌ 不读取用户的
login.nu文件 - ✅ 进入 REPL
nu -n --no-std-lib -c "ls"(最快的命令字符串调用):- ❌ 不使标准库可用
- ❌ 不读取用户的
plugin.msgpackz - ❌ 不读取内部
default_env.nu - ❌ 不加载用户的
env.nu - ❌ 不读取内部
default_config.nu文件 - ❌ 不读取用户的
config.nu文件 - ❌ 不读取用户的
login.nu文件 - ✅ 运行
ls命令并退出 - ❌ 不进入 REPL