Created
October 16, 2023 15:08
-
-
Save bfren/e7cbb1a04a4e1d1382965fad57e46f26 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Nushell Environment Config File | |
# | |
# version = "0.85.0" | |
def create_left_prompt [] { | |
let home = $nu.home-path | |
let dir = ([ | |
($env.PWD | str substring 0..($home | str length) | str replace $home "~"), | |
($env.PWD | str substring ($home | str length)..) | |
] | str join) | |
let path_color = (if (is-admin) { ansi red_bold } else { ansi green_bold }) | |
let separator_color = (if (is-admin) { ansi light_red_bold } else { ansi light_green_bold }) | |
let path_segment = $"($path_color)($dir)" | |
$path_segment | str replace --all (char path_sep) $"($separator_color)/($path_color)" | |
} | |
def create_right_prompt [] { | |
if ($env.LAST_EXIT_CODE != 0) {([ | |
(ansi rb) | |
($env.LAST_EXIT_CODE) | |
] | str join) | |
} else { "" } | |
} | |
# Use nushell functions to define your right and left prompt | |
$env.PROMPT_COMMAND = {|| create_left_prompt } | |
# FIXME: This default is not implemented in rust code as of 2023-09-08. | |
$env.PROMPT_COMMAND_RIGHT = {|| create_right_prompt } | |
# The prompt indicators are v environmental variables that represent | |
# the state of the prompt | |
$env.PROMPT_INDICATOR = {|| "> " } | |
$env.PROMPT_INDICATOR_VI_INSERT = {|| ": " } | |
$env.PROMPT_INDICATOR_VI_NORMAL = {|| "> " } | |
$env.PROMPT_MULTILINE_INDICATOR = {|| "::: " } | |
# Specifies how environment variables are: | |
# - converted from a string to a value on Nushell startup (from_string) | |
# - converted from a value back to a string when running external commands (to_string) | |
# Note: The conversions happen *after* config.nu is loaded | |
$env.ENV_CONVERSIONS = { | |
"PATH": { | |
from_string: {|s| $s | split row (char esep) | path expand --no-symlink } | |
to_string: {|v| $v | path expand --no-symlink | str join (char esep) } | |
} | |
"Path": { | |
from_string: {|s| $s | split row (char esep) | path expand --no-symlink } | |
to_string: {|v| $v | path expand --no-symlink | str join (char esep) } | |
} | |
} | |
# Directories to search for scripts when calling source or use | |
$env.NU_LIB_DIRS = [ | |
# FIXME: This default is not implemented in rust code as of 2023-09-06. | |
($nu.default-config-dir | path join 'scripts') # add <nushell-config-dir>/scripts | |
] | |
# Directories to search for plugin binaries when calling register | |
$env.NU_PLUGIN_DIRS = [ | |
# FIXME: This default is not implemented in rust code as of 2023-09-06. | |
($nu.default-config-dir | path join 'plugins') # add <nushell-config-dir>/plugins | |
] | |
# To add entries to PATH (on Windows you might use Path), you can use the following pattern: | |
# $env.PATH = ($env.PATH | split row (char esep) | prepend '/some/path') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment