mirror of
https://github.com/nushell/nushell.git
synced 2025-05-30 06:39:33 +02:00
This file is not made accessible to the user through any of our `config` commands. Thus I discussed with Douglas to delete it, to ensure it doesn't go out of date (the version added with #14601 was not yet part of the bumping script) All the necessary information on how to setup a `login.nu` file is provided in the website documentation
73 lines
3.9 KiB
Markdown
73 lines
3.9 KiB
Markdown
# Nushell configuration files
|
|
|
|
## `default_env.nu`:
|
|
|
|
* The internal default environment variables (other than `$env.config`) that will be set during Nushell startup.
|
|
* Is loaded *before* the user's `env.nu`.
|
|
* Will be loaded during any startup where the user's `env.nu` is also loaded. For example:
|
|
* During normal startup with `nu`
|
|
* During a startup where the user specifies an alternative `env.nu` via `nu --env-config <path>`
|
|
* During a `nu -c <commandstring>` or `nu <script>` startup so that `ENV_CONVERSIONS` is properly handled for Windows.
|
|
* Is *not* loaded when running with an explicit `no --no-config-file (-n)`.
|
|
* Is not commented - Comments are in `doc_env.nu`.
|
|
* Should be optimized for fastest load times.
|
|
* Can be introspected via `config env --default | nu-highlight`
|
|
|
|
## `default_config.nu`:
|
|
|
|
Counterpart to `default_env.nu`.
|
|
|
|
* Contains any `$env.config` values that are not set via Rust defaults.
|
|
* Is loaded *after* the user's `env.nu`.
|
|
* Is loaded *before* the user's `config.nu`.
|
|
* Will be loaded during any startup where the user's `config.nu` is also loaded. For example:
|
|
* During normal startup with `nu`
|
|
* During a startup where the user specifies an alternative `config.nu` via `nu --config <path>`
|
|
* Likewise, is never loaded during a startup where the user's `config.nu` would not be loaded. For example:
|
|
* `nu -n/--no-config`
|
|
* `nu -c "ls"`
|
|
* `nu <script.nu>`
|
|
* Is not commented - Comments are in `doc_config.nu`.
|
|
* Should be optimized for fastest load times. Whenever possible, values should be set via nu-protocol::config
|
|
* Exception: `color_config` values are currently set in this file so that user's can introspect the values
|
|
* TODO: Implement defaults for `color_config` in nu-protocol::config and remove from `default_config.nu`
|
|
* Can be introspected via `config nu --default | nu-highlight`
|
|
* An ideal `default_config.nu` (when all values are set via `nu-protocol::config`) will simply be:
|
|
```
|
|
$env.config = {}
|
|
```
|
|
|
|
## `doc_env.nu`
|
|
|
|
* A commented file documenting the most common environment variables that a user might configure in `env.nu`
|
|
* For convenient in-shell access - Can be pretty-printed via `config env --doc | nu-highlight`
|
|
* Since this file is for documentation only, include actual Nushell code without comments so that it can be pretty-printed
|
|
* No optimization necessary - Not intended for use other than documentation.
|
|
* Consider replacing `config env --doc` with `help env.nu` at some point.
|
|
* Uses a mix of default values (explained) as well as other examples that users might want in their own `env.nu`
|
|
|
|
## `doc_config.nu`
|
|
|
|
Counterpart to `doc_env.nu`.
|
|
|
|
* A commented file documenting the most common environment variables that a user might configure in `config.nu`
|
|
* For convenient in-shell access - Can be pretty-printed via `config nu --doc | nu-highlight`
|
|
* Since this file is for documentation only, include actual Nushell code without comments so that it can be pretty-printed
|
|
* No optimization necessary - Not intended for use other than documentation.
|
|
* Consider replacing `config nu --doc` with `help config.nu` at some point.
|
|
* Uses a mix of default values (explained) as well as other examples that users might want in their own `config.nu`
|
|
|
|
## `scaffold_env.nu`
|
|
|
|
* This file is used *one-time* (typically) at **first** startup
|
|
* If the `$nu.default-config-path` directory does not exist, the directory is created and then both `scaffold_env.nu` and `scaffold_config.nu` are written to it
|
|
* Contains only commented lines explaining the purpose of the file to the user, along with information on the `config env` command.
|
|
|
|
## `scaffold_config.nu`
|
|
|
|
Counterpart to `scaffold_env.nu`.
|
|
|
|
* This file is used *one-time* (typically) at **first** startup
|
|
* If the `$nu.default-config-path` directory does not exist, the directory is created and then both `scaffold_env.nu` and `scaffold_config.nu` are written to it
|
|
* Contains only commented lines explaining the purpose of the file to the user, along with information on the `config nu` command.
|