diff --git a/.config/nushell/config.nu b/.config/nushell/config.nu index c70a8ce..366e4e7 100644 --- a/.config/nushell/config.nu +++ b/.config/nushell/config.nu @@ -15,6 +15,28 @@ $env.config = { } }] } + + keybindings: [ + { + name: fuzzy_history_fzf + modifier: control + keycode: char_r + mode: [emacs , vi_normal, vi_insert] + event: { + send: executehostcommand + cmd: "commandline edit --replace ( + history + | get command + | reverse + | uniq + | str join (char -i 0) + | fzf --scheme=history --read0 --tiebreak=chunk --layout=reverse --preview='echo {..}' --preview-window='bottom:3:wrap' --bind alt-up:preview-up,alt-down:preview-down --height=70% -q (commandline) --preview='echo -n {} | nu --stdin -c \'nu-highlight''' + | decode utf-8 + | str trim + )" + } + } + ] } mkdir ($nu.data-dir | path join "vendor/autoload") @@ -26,37 +48,33 @@ source ~/.cache/carapace/init.nu # gitignore.io command def _gitignoreio_list [] { - http get https://www.toptal.com/developers/gitignore/api/list - | str replace -a "\n" "," - | split row "," - | str trim - | where {|x| $x != ""} + http get https://www.toptal.com/developers/gitignore/api/list + | str replace -a "\n" "," + | split row "," + | str trim + | where {|x| $x != ""} } def "nu-complete gi" [] { - _gitignoreio_list + let fixed = ["list"] + let templates = _gitignoreio_list + $fixed ++ $templates } def gi [...args: string@"nu-complete gi"] { - if ($args | where {|x| $x == "list"} | length) > 0 { - return (_gitignoreio_list) - } + if ($args | where {|x| $x == "list"} | length) > 0 { + return (_gitignoreio_list) + } - # Join templates with commas and fetch .gitignore - let joined = ($args | sort | str join ",") - http get $"https://www.toptal.com/developers/gitignore/api/($joined)" -} - -# take command -def take [path: string] { - mkdir $path - cd $path + # Join templates with commas and fetch .gitignore + let joined = ($args | sort | str join ",") + http get $"https://www.toptal.com/developers/gitignore/api/($joined)" } # secret copy command def sc [path: string] { - ["/run/secrets" $path] - | path join - | open - | wl-copy + ["/run/secrets" ($path)] + | path join + | open + | wl-copy }