210 lines
7 KiB
Text
210 lines
7 KiB
Text
use ($nu.default-config-dir | path join 'config/keybindings.nu')
|
|
|
|
# use prompt indicators from starship
|
|
$env.PROMPT_INDICATOR = ""
|
|
$env.PROMPT_INDICATOR_VI_INSERT = ""
|
|
$env.PROMPT_INDICATOR_VI_NORMAL = ""
|
|
$env.PROMPT_MULTILINE_INDICATOR = ""
|
|
|
|
let in_supported_termprogram = ($env.TERM_PROGRAM? == "WezTerm") or ($env.TERM? == "xterm-kitty");
|
|
|
|
$env.config = {
|
|
show_banner: false
|
|
|
|
ls: {
|
|
use_ls_colors: true
|
|
clickable_links: true
|
|
}
|
|
|
|
rm: { always_trash: false }
|
|
|
|
table: {
|
|
mode: psql
|
|
index_mode: auto
|
|
show_empty: true
|
|
padding: { left: 1, right: 1 }
|
|
trim: {
|
|
methodology: truncating
|
|
truncating_suffix: "…"
|
|
}
|
|
header_on_separator: true
|
|
# limit data rows from top and bottom after reaching a set point
|
|
# abbreviated_row_count: 100
|
|
}
|
|
|
|
error_style: fancy
|
|
|
|
datetime_format: {
|
|
normal: "%Y-%m-%d %I:%M:%S%p"
|
|
table: "%Y-%m-%d %I:%M:%S%p"
|
|
}
|
|
|
|
explore: {
|
|
status_bar_background: { fg: "#1D1F21", bg: "#C4C9C6" },
|
|
command_bar_text: { fg: "#C4C9C6" },
|
|
highlight: { fg: "black", bg: "yellow" },
|
|
status: {
|
|
error: { fg: "white", bg: "red" },
|
|
warn: {}
|
|
info: {}
|
|
},
|
|
table: {
|
|
split_line: { fg: "#404040" },
|
|
selected_cell: { bg: light_blue },
|
|
selected_row: {},
|
|
selected_column: {},
|
|
},
|
|
}
|
|
|
|
history: {
|
|
max_size: 100_000
|
|
sync_on_enter: true
|
|
file_format: "plaintext"
|
|
isolation: false
|
|
}
|
|
|
|
completions: {
|
|
case_sensitive: false
|
|
quick: true
|
|
partial: true
|
|
algorithm: "prefix"
|
|
use_ls_colors: true
|
|
}
|
|
|
|
filesize: {
|
|
metric: false # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard)
|
|
format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, auto
|
|
}
|
|
|
|
cursor_shape: {
|
|
# block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (line is the default)
|
|
emacs: inherit
|
|
# block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (block is the default)
|
|
vi_insert: inherit
|
|
# block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (underscore is the default)
|
|
vi_normal: inherit
|
|
}
|
|
|
|
use_grid_icons: true
|
|
# always, never, number_of_rows, auto
|
|
footer_mode: 20
|
|
# the precision for displaying floats in tables
|
|
float_precision: 2
|
|
# command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL
|
|
# buffer_editor: ""
|
|
use_ansi_coloring: true
|
|
# enable bracketed paste, currently useless on windows
|
|
bracketed_paste: true
|
|
# emacs, vi
|
|
edit_mode: vi
|
|
# enables terminal shell integration. Off by default, as some terminals have issues with this.
|
|
shell_integration: {
|
|
# osc2 abbreviates the path if in the home_dir, sets the tab/window title, shows the running command in the tab/window title
|
|
osc2: $in_supported_termprogram
|
|
# osc7 is a way to communicate the path to the terminal, this is helpful for spawning new tabs in the same directory
|
|
osc7: $in_supported_termprogram
|
|
# osc8 is also implemented as the deprecated setting ls.show_clickable_links, it shows clickable links in ls output if your terminal supports it. show_clickable_links is deprecated in favor of osc8
|
|
osc8: $in_supported_termprogram
|
|
# osc9_9 is from ConEmu and is starting to get wider support. It's similar to osc7 in that it communicates the path to the terminal
|
|
osc9_9: false
|
|
# osc133 is several escapes invented by Final Term which include the supported ones below.
|
|
# 133;A - Mark prompt start
|
|
# 133;B - Mark prompt end
|
|
# 133;C - Mark pre-execution
|
|
# 133;D;exit - Mark execution finished with exit code
|
|
# This is used to enable terminals to know where the prompt is, the command is, where the command finishes, and where the output of the command is
|
|
osc133: $in_supported_termprogram
|
|
# osc633 is closely related to osc133 but only exists in visual studio code (vscode) and supports their shell integration features
|
|
# 633;A - Mark prompt start
|
|
# 633;B - Mark prompt end
|
|
# 633;C - Mark pre-execution
|
|
# 633;D;exit - Mark execution finished with exit code
|
|
# 633;E - NOT IMPLEMENTED - Explicitly set the command line with an optional nonce
|
|
# 633;P;Cwd=<path> - Mark the current working directory and communicate it to the terminal
|
|
# and also helps with the run recent menu in vscode
|
|
osc633: ($env.TERM_PROGRAM? == "vscode")
|
|
# reset_application_mode is escape \x1b[?1l and was added to help ssh work better
|
|
reset_application_mode: true
|
|
}
|
|
|
|
# true or false to enable or disable right prompt to be rendered on last line of the prompt.
|
|
render_right_prompt_on_last_line: false
|
|
# enables keyboard enhancement protocol implemented by kitty console, only if your terminal support this.
|
|
use_kitty_protocol: $in_supported_termprogram,
|
|
# true enables highlighting of external commands in the repl resolved by which.
|
|
highlight_resolved_externals: false
|
|
# the maximum number of times nushell allows recursion before stopping it
|
|
recursion_limit: 50
|
|
|
|
hooks: {
|
|
env_change: {
|
|
PWD: [
|
|
{if (".git" | path exists) {
|
|
onefetch --no-merges --no-bots --no-color-palette --true-color=never --text-colors 1 1 3 4 4
|
|
}}
|
|
]
|
|
}
|
|
# run to display the output of a pipeline
|
|
display_output: "if (term size).columns >= 100 { table -e } else { table }"
|
|
# return an error message when a command is not found
|
|
command_not_found: { null }
|
|
}
|
|
|
|
menus: [
|
|
# Configuration for default nushell menus
|
|
# Note the lack of source parameter
|
|
{
|
|
name: completion_menu
|
|
only_buffer_difference: false
|
|
marker: "| "
|
|
type: {
|
|
layout: columnar
|
|
columns: 1
|
|
# Optional value. If missing all the screen width is used to calculate column width
|
|
# col_width: 20
|
|
# col_padding: 2
|
|
}
|
|
style: {
|
|
text: green
|
|
selected_text: { attr: r }
|
|
description_text: yellow
|
|
match_text: { attr: u }
|
|
selected_match_text: { attr: ur }
|
|
}
|
|
}
|
|
{
|
|
name: ide_completion_menu
|
|
only_buffer_difference: false
|
|
marker: "| "
|
|
type: {
|
|
layout: ide
|
|
min_completion_width: 0,
|
|
max_completion_width: 50,
|
|
max_completion_height: 10, # will be limited by the available lines in the terminal
|
|
padding: 0,
|
|
border: true,
|
|
cursor_offset: 0,
|
|
description_mode: "prefer_right"
|
|
min_description_width: 0
|
|
max_description_width: 50
|
|
max_description_height: 10
|
|
description_offset: 1
|
|
# If true, the cursor pos will be corrected, so the suggestions match up with the typed text
|
|
#
|
|
# C:\> str
|
|
# str join
|
|
# str trim
|
|
# str split
|
|
correct_cursor_pos: true
|
|
}
|
|
style: {
|
|
text: green
|
|
selected_text: { attr: r }
|
|
description_text: yellow
|
|
match_text: { attr: u }
|
|
selected_match_text: { attr: ur }
|
|
}
|
|
}
|
|
]
|
|
keybindings: (keybindings)
|
|
}
|