From 63585ff489b4ea291918b8bee576e85f6912d485 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 17 May 2024 22:58:18 +0200 Subject: [PATCH] Add fish configuration. Make default in tmux. --- dot_config/fish/completions/fisher.fish | 7 + .../completions/fzf_configure_bindings.fish | 8 + dot_config/fish/conf.d/alias.fish | 15 ++ dot_config/fish/conf.d/fish-eza.fish | 87 +++++++ dot_config/fish/conf.d/fzf.fish | 28 ++ dot_config/fish/conf.d/zoxide.fish | 26 ++ dot_config/fish/config.fish | 20 ++ dot_config/fish/fish_plugins | 4 + dot_config/fish/fish_variables | 74 ++++++ dot_config/fish/functions/__zoxide_cd.fish | 6 + dot_config/fish/functions/__zoxide_pwd.fish | 7 + dot_config/fish/functions/__zoxide_z.fish | 13 + .../fish/functions/__zoxide_z_complete.fish | 15 ++ dot_config/fish/functions/__zoxide_zi.fish | 4 + .../_fzf_configure_bindings_help.fish | 43 ++++ .../fish/functions/_fzf_extract_var_info.fish | 15 ++ .../functions/_fzf_preview_changed_file.fish | 49 ++++ .../fish/functions/_fzf_preview_file.fish | 43 ++++ .../fish/functions/_fzf_report_diff_type.fish | 18 ++ .../fish/functions/_fzf_report_file_type.fish | 6 + .../fish/functions/_fzf_search_directory.fish | 33 +++ .../fish/functions/_fzf_search_git_log.fish | 36 +++ .../functions/_fzf_search_git_status.fish | 41 +++ .../fish/functions/_fzf_search_history.fish | 39 +++ .../fish/functions/_fzf_search_processes.fish | 32 +++ .../fish/functions/_fzf_search_variables.fish | 47 ++++ dot_config/fish/functions/_fzf_wrapper.fish | 21 ++ dot_config/fish/functions/eza_git.fish | 7 + dot_config/fish/functions/fisher.fish | 240 ++++++++++++++++++ .../functions/fzf_configure_bindings.fish | 46 ++++ dot_config/fish/functions/l.fish | 4 + dot_config/fish/functions/la.fish | 4 + dot_config/fish/functions/laa.fish | 4 + dot_config/fish/functions/laad.fish | 4 + dot_config/fish/functions/laai.fish | 4 + dot_config/fish/functions/laaid.fish | 4 + dot_config/fish/functions/lad.fish | 4 + dot_config/fish/functions/lai.fish | 4 + dot_config/fish/functions/laid.fish | 4 + dot_config/fish/functions/lc.fish | 4 + dot_config/fish/functions/lca.fish | 4 + dot_config/fish/functions/lcaa.fish | 4 + dot_config/fish/functions/lcaad.fish | 4 + dot_config/fish/functions/lcaai.fish | 4 + dot_config/fish/functions/lcaaid.fish | 4 + dot_config/fish/functions/lcad.fish | 4 + dot_config/fish/functions/lcai.fish | 4 + dot_config/fish/functions/lcaid.fish | 4 + dot_config/fish/functions/lcd.fish | 4 + dot_config/fish/functions/lci.fish | 4 + dot_config/fish/functions/lcid.fish | 4 + dot_config/fish/functions/ld.fish | 4 + dot_config/fish/functions/le.fish | 4 + dot_config/fish/functions/lea.fish | 4 + dot_config/fish/functions/leaa.fish | 4 + dot_config/fish/functions/leaad.fish | 4 + dot_config/fish/functions/leaai.fish | 4 + dot_config/fish/functions/leaaid.fish | 4 + dot_config/fish/functions/lead.fish | 4 + dot_config/fish/functions/leai.fish | 4 + dot_config/fish/functions/leaid.fish | 4 + dot_config/fish/functions/led.fish | 4 + dot_config/fish/functions/lei.fish | 4 + dot_config/fish/functions/leid.fish | 4 + dot_config/fish/functions/lg.fish | 4 + dot_config/fish/functions/lga.fish | 4 + dot_config/fish/functions/lgaa.fish | 4 + dot_config/fish/functions/lgaad.fish | 4 + dot_config/fish/functions/lgaai.fish | 4 + dot_config/fish/functions/lgaaid.fish | 4 + dot_config/fish/functions/lgad.fish | 4 + dot_config/fish/functions/lgai.fish | 4 + dot_config/fish/functions/lgaid.fish | 4 + dot_config/fish/functions/lgd.fish | 4 + dot_config/fish/functions/lgi.fish | 4 + dot_config/fish/functions/lgid.fish | 4 + dot_config/fish/functions/li.fish | 4 + dot_config/fish/functions/lid.fish | 4 + dot_config/fish/functions/ll.fish | 4 + dot_config/fish/functions/lla.fish | 4 + dot_config/fish/functions/llaa.fish | 4 + dot_config/fish/functions/llaad.fish | 4 + dot_config/fish/functions/llaai.fish | 4 + dot_config/fish/functions/llaaid.fish | 4 + dot_config/fish/functions/llad.fish | 4 + dot_config/fish/functions/llai.fish | 4 + dot_config/fish/functions/llaid.fish | 4 + dot_config/fish/functions/lld.fish | 4 + dot_config/fish/functions/lli.fish | 4 + dot_config/fish/functions/llid.fish | 4 + dot_config/fish/functions/lo.fish | 4 + dot_config/fish/functions/loa.fish | 4 + dot_config/fish/functions/loaa.fish | 4 + dot_config/fish/functions/loaad.fish | 4 + dot_config/fish/functions/loaai.fish | 4 + dot_config/fish/functions/loaaid.fish | 4 + dot_config/fish/functions/load.fish | 4 + dot_config/fish/functions/loai.fish | 4 + dot_config/fish/functions/loaid.fish | 4 + dot_config/fish/functions/lod.fish | 4 + dot_config/fish/functions/loi.fish | 4 + dot_config/fish/functions/loid.fish | 4 + dot_config/fish/functions/lt.fish | 4 + dot_config/fish/functions/lta.fish | 4 + dot_config/fish/functions/ltaad.fish | 4 + dot_config/fish/functions/ltaai.fish | 4 + dot_config/fish/functions/ltaaid.fish | 4 + dot_config/fish/functions/ltad.fish | 4 + dot_config/fish/functions/ltai.fish | 4 + dot_config/fish/functions/ltaid.fish | 4 + dot_config/fish/functions/ltd.fish | 4 + dot_config/fish/functions/lti.fish | 4 + dot_config/fish/functions/ltid.fish | 4 + 113 files changed, 1362 insertions(+) create mode 100644 dot_config/fish/completions/fisher.fish create mode 100644 dot_config/fish/completions/fzf_configure_bindings.fish create mode 100644 dot_config/fish/conf.d/alias.fish create mode 100644 dot_config/fish/conf.d/fish-eza.fish create mode 100644 dot_config/fish/conf.d/fzf.fish create mode 100644 dot_config/fish/conf.d/zoxide.fish create mode 100644 dot_config/fish/config.fish create mode 100644 dot_config/fish/fish_plugins create mode 100644 dot_config/fish/fish_variables create mode 100644 dot_config/fish/functions/__zoxide_cd.fish create mode 100644 dot_config/fish/functions/__zoxide_pwd.fish create mode 100644 dot_config/fish/functions/__zoxide_z.fish create mode 100644 dot_config/fish/functions/__zoxide_z_complete.fish create mode 100644 dot_config/fish/functions/__zoxide_zi.fish create mode 100644 dot_config/fish/functions/_fzf_configure_bindings_help.fish create mode 100644 dot_config/fish/functions/_fzf_extract_var_info.fish create mode 100644 dot_config/fish/functions/_fzf_preview_changed_file.fish create mode 100644 dot_config/fish/functions/_fzf_preview_file.fish create mode 100644 dot_config/fish/functions/_fzf_report_diff_type.fish create mode 100644 dot_config/fish/functions/_fzf_report_file_type.fish create mode 100644 dot_config/fish/functions/_fzf_search_directory.fish create mode 100644 dot_config/fish/functions/_fzf_search_git_log.fish create mode 100644 dot_config/fish/functions/_fzf_search_git_status.fish create mode 100644 dot_config/fish/functions/_fzf_search_history.fish create mode 100644 dot_config/fish/functions/_fzf_search_processes.fish create mode 100644 dot_config/fish/functions/_fzf_search_variables.fish create mode 100644 dot_config/fish/functions/_fzf_wrapper.fish create mode 100644 dot_config/fish/functions/eza_git.fish create mode 100644 dot_config/fish/functions/fisher.fish create mode 100644 dot_config/fish/functions/fzf_configure_bindings.fish create mode 100644 dot_config/fish/functions/l.fish create mode 100644 dot_config/fish/functions/la.fish create mode 100644 dot_config/fish/functions/laa.fish create mode 100644 dot_config/fish/functions/laad.fish create mode 100644 dot_config/fish/functions/laai.fish create mode 100644 dot_config/fish/functions/laaid.fish create mode 100644 dot_config/fish/functions/lad.fish create mode 100644 dot_config/fish/functions/lai.fish create mode 100644 dot_config/fish/functions/laid.fish create mode 100644 dot_config/fish/functions/lc.fish create mode 100644 dot_config/fish/functions/lca.fish create mode 100644 dot_config/fish/functions/lcaa.fish create mode 100644 dot_config/fish/functions/lcaad.fish create mode 100644 dot_config/fish/functions/lcaai.fish create mode 100644 dot_config/fish/functions/lcaaid.fish create mode 100644 dot_config/fish/functions/lcad.fish create mode 100644 dot_config/fish/functions/lcai.fish create mode 100644 dot_config/fish/functions/lcaid.fish create mode 100644 dot_config/fish/functions/lcd.fish create mode 100644 dot_config/fish/functions/lci.fish create mode 100644 dot_config/fish/functions/lcid.fish create mode 100644 dot_config/fish/functions/ld.fish create mode 100644 dot_config/fish/functions/le.fish create mode 100644 dot_config/fish/functions/lea.fish create mode 100644 dot_config/fish/functions/leaa.fish create mode 100644 dot_config/fish/functions/leaad.fish create mode 100644 dot_config/fish/functions/leaai.fish create mode 100644 dot_config/fish/functions/leaaid.fish create mode 100644 dot_config/fish/functions/lead.fish create mode 100644 dot_config/fish/functions/leai.fish create mode 100644 dot_config/fish/functions/leaid.fish create mode 100644 dot_config/fish/functions/led.fish create mode 100644 dot_config/fish/functions/lei.fish create mode 100644 dot_config/fish/functions/leid.fish create mode 100644 dot_config/fish/functions/lg.fish create mode 100644 dot_config/fish/functions/lga.fish create mode 100644 dot_config/fish/functions/lgaa.fish create mode 100644 dot_config/fish/functions/lgaad.fish create mode 100644 dot_config/fish/functions/lgaai.fish create mode 100644 dot_config/fish/functions/lgaaid.fish create mode 100644 dot_config/fish/functions/lgad.fish create mode 100644 dot_config/fish/functions/lgai.fish create mode 100644 dot_config/fish/functions/lgaid.fish create mode 100644 dot_config/fish/functions/lgd.fish create mode 100644 dot_config/fish/functions/lgi.fish create mode 100644 dot_config/fish/functions/lgid.fish create mode 100644 dot_config/fish/functions/li.fish create mode 100644 dot_config/fish/functions/lid.fish create mode 100644 dot_config/fish/functions/ll.fish create mode 100644 dot_config/fish/functions/lla.fish create mode 100644 dot_config/fish/functions/llaa.fish create mode 100644 dot_config/fish/functions/llaad.fish create mode 100644 dot_config/fish/functions/llaai.fish create mode 100644 dot_config/fish/functions/llaaid.fish create mode 100644 dot_config/fish/functions/llad.fish create mode 100644 dot_config/fish/functions/llai.fish create mode 100644 dot_config/fish/functions/llaid.fish create mode 100644 dot_config/fish/functions/lld.fish create mode 100644 dot_config/fish/functions/lli.fish create mode 100644 dot_config/fish/functions/llid.fish create mode 100644 dot_config/fish/functions/lo.fish create mode 100644 dot_config/fish/functions/loa.fish create mode 100644 dot_config/fish/functions/loaa.fish create mode 100644 dot_config/fish/functions/loaad.fish create mode 100644 dot_config/fish/functions/loaai.fish create mode 100644 dot_config/fish/functions/loaaid.fish create mode 100644 dot_config/fish/functions/load.fish create mode 100644 dot_config/fish/functions/loai.fish create mode 100644 dot_config/fish/functions/loaid.fish create mode 100644 dot_config/fish/functions/lod.fish create mode 100644 dot_config/fish/functions/loi.fish create mode 100644 dot_config/fish/functions/loid.fish create mode 100644 dot_config/fish/functions/lt.fish create mode 100644 dot_config/fish/functions/lta.fish create mode 100644 dot_config/fish/functions/ltaad.fish create mode 100644 dot_config/fish/functions/ltaai.fish create mode 100644 dot_config/fish/functions/ltaaid.fish create mode 100644 dot_config/fish/functions/ltad.fish create mode 100644 dot_config/fish/functions/ltai.fish create mode 100644 dot_config/fish/functions/ltaid.fish create mode 100644 dot_config/fish/functions/ltd.fish create mode 100644 dot_config/fish/functions/lti.fish create mode 100644 dot_config/fish/functions/ltid.fish diff --git a/dot_config/fish/completions/fisher.fish b/dot_config/fish/completions/fisher.fish new file mode 100644 index 0000000..6d23ce4 --- /dev/null +++ b/dot_config/fish/completions/fisher.fish @@ -0,0 +1,7 @@ +complete --command fisher --exclusive --long help --description "Print help" +complete --command fisher --exclusive --long version --description "Print version" +complete --command fisher --exclusive --condition __fish_use_subcommand --arguments install --description "Install plugins" +complete --command fisher --exclusive --condition __fish_use_subcommand --arguments update --description "Update installed plugins" +complete --command fisher --exclusive --condition __fish_use_subcommand --arguments remove --description "Remove installed plugins" +complete --command fisher --exclusive --condition __fish_use_subcommand --arguments list --description "List installed plugins matching regex" +complete --command fisher --exclusive --condition "__fish_seen_subcommand_from update remove" --arguments "(fisher list)" diff --git a/dot_config/fish/completions/fzf_configure_bindings.fish b/dot_config/fish/completions/fzf_configure_bindings.fish new file mode 100644 index 0000000..b38ef92 --- /dev/null +++ b/dot_config/fish/completions/fzf_configure_bindings.fish @@ -0,0 +1,8 @@ +complete fzf_configure_bindings --no-files +complete fzf_configure_bindings --long help --short h --description "Print help" --condition "not __fish_seen_argument --help -h" +complete fzf_configure_bindings --long directory --description "Change the key binding for Search Directory" --condition "not __fish_seen_argument --directory" +complete fzf_configure_bindings --long git_log --description "Change the key binding for Search Git Log" --condition "not __fish_seen_argument --git_log" +complete fzf_configure_bindings --long git_status --description "Change the key binding for Search Git Status" --condition "not __fish_seen_argument --git_status" +complete fzf_configure_bindings --long history --description "Change the key binding for Search History" --condition "not __fish_seen_argument --history" +complete fzf_configure_bindings --long processes --description "Change the key binding for Search Processes" --condition "not __fish_seen_argument --processes" +complete fzf_configure_bindings --long variables --description "Change the key binding for Search Variables" --condition "not __fish_seen_argument --variables" diff --git a/dot_config/fish/conf.d/alias.fish b/dot_config/fish/conf.d/alias.fish new file mode 100644 index 0000000..fa11f8b --- /dev/null +++ b/dot_config/fish/conf.d/alias.fish @@ -0,0 +1,15 @@ +abbr top "htop" +abbr ctags "uctags" +abbr make "gmake" +abbr tar "gtar" +abbr man "manpager.sh" +abbr mutt "neomutt" +abbr dvim "doas nvim" +abbr lg "lazygit" +abbr ic "doas ifconfig" +abbr pq "doas pkg_info -Q" +abbr pa "doas pkg_add" +abbr pd "doas pkg_delete" +abbr ccd "chezmoi cd" +abbr cdi "chezmoi diff" +abbr cap "chezmoi apply" diff --git a/dot_config/fish/conf.d/fish-eza.fish b/dot_config/fish/conf.d/fish-eza.fish new file mode 100644 index 0000000..545ef78 --- /dev/null +++ b/dot_config/fish/conf.d/fish-eza.fish @@ -0,0 +1,87 @@ +function __fish_eza_install --on-event fish-eza_install + set -Ux __FISH_EZA_BASE_ALIASES l ll lg le lt lc lo + set -Ux __FISH_EZA_EXPANDED a d i id aa ad ai aid aad aai aaid + set -Ux __FISH_EZA_EXPANDED_OPT_NAME LA LD LI LID LAA LAD LAI LAID LAAD LAAI LAAID + set -Ux __FISH_EZA_OPT_NAMES + set -Ux __FISH_EZA_ALIASES + set -Ux __FISH_EZA_SORT_OPTIONS name .name size ext mod old acc cr inode + + set -Ux EZA_STANDARD_OPTIONS "--group" "--header" "--group-directories-first" + + # Base aliases + set -Ux EZA_L_OPTIONS + set -Ux EZA_LL_OPTIONS "--long" + set -Ux EZA_LG_OPTIONS "--git" "--git-ignore" "--long" + set -Ux EZA_LE_OPTIONS "--extended" "--long" + set -Ux EZA_LT_OPTIONS "--tree" "--level" + set -Ux EZA_LC_OPTIONS "--across" + set -Ux EZA_LO_OPTIONS "--oneline" + + # Extended aliases + set -Ux EZA_LI_OPTIONS "--icons" + set -Ux EZA_LD_OPTIONS "--only-dirs" + set -Ux EZA_LID_OPTIONS "--icons" "--only-dirs" + set -Ux EZA_LA_OPTIONS "--all" "--binary" + set -Ux EZA_LAD_OPTIONS "--all" "--binary" "--only-dirs" + set -Ux EZA_LAI_OPTIONS "--all" "--binary" "--icons" + set -Ux EZA_LAID_OPTIONS "--all" "--binary" "--icons" "--only-dirs" + set -Ux EZA_LAA_OPTIONS "--all" "--all" "--binary" + set -Ux EZA_LAAD_OPTIONS "--all" "--all" "--binary" "--only-dirs" + set -Ux EZA_LAAI_OPTIONS "--all" "--all" "--binary" "--icons" + set -Ux EZA_LAAID_OPTIONS "--all" "--all" "--binary" "--icons" "--only-dirs" + + for a in $__FISH_EZA_BASE_ALIASES + set -l opt_name (string join '_' "EZA" (string upper $a) "OPTIONS") + if test $a = "ll" + alias --save "$a" "eza_git" + else + alias --save "$a" "eza \$EZA_STANDARD_OPTIONS \$$opt_name" + end + set -a __FISH_EZA_OPT_NAMES "$opt_name" + set -a __FISH_EZA_ALIASES "$a" + + for i in (seq (count $__FISH_EZA_EXPANDED)) + set -l name "$a$__FISH_EZA_EXPANDED[$i]" + # --tree is useless given --all --all + if test $name = "ltaa"; or test $name = "ltaac" + continue + end + set -l exp_opt_name (string join '_' "EZA" $__FISH_EZA_EXPANDED_OPT_NAME[$i] "OPTIONS") + if string match --quiet 'll*' "$name" + alias --save "$name" "eza_git \$$exp_opt_name" + else + alias --save "$name" "eza \$EZA_STANDARD_OPTIONS \$$exp_opt_name \$$opt_name" + end + set -a __FISH_EZA_ALIASES "$name" + + if not contains $exp_opt_name $__FISH_EZA_OPT_NAMES + set -a __FISH_EZA_OPT_NAMES $exp_opt_name + end + end + end +end + +function __fish_eza_update --on-event fish-eza_update + __fish_eza_uninstall + __fish_eza_install +end + +function __fish_eza_uninstall --on-event fish-eza_uninstall + set --erase EZA_STANDARD_OPTIONS + + for a in $__FISH_EZA_ALIASES + functions --erase $a + funcsave $a + end + + for opt in $__FISH_EZA_OPT_NAMES + set --erase $opt + end + + set --erase __FISH_EZA_BASE_ALIASES + set --erase __FISH_EZA_ALIASES + set --erase __FISH_EZA_EXPANDED + set --erase __FISH_EZA_EXPANDED_OPT_NAME + set --erase __FISH_EZA_OPT_NAMES + set --erase __FISH_EZA_SORT_OPTIONS +end diff --git a/dot_config/fish/conf.d/fzf.fish b/dot_config/fish/conf.d/fzf.fish new file mode 100644 index 0000000..8156c11 --- /dev/null +++ b/dot_config/fish/conf.d/fzf.fish @@ -0,0 +1,28 @@ +# fzf.fish is only meant to be used in interactive mode. If not in interactive mode and not in CI, skip the config to speed up shell startup +if not status is-interactive && test "$CI" != true + exit +end + +# Because of scoping rules, to capture the shell variables exactly as they are, we must read +# them before even executing _fzf_search_variables. We use psub to store the +# variables' info in temporary files and pass in the filenames as arguments. +# This variable is global so that it can be referenced by fzf_configure_bindings and in tests +set --global _fzf_search_vars_command '_fzf_search_variables (set --show | psub) (set --names | psub)' + + +# Install the default bindings, which are mnemonic and minimally conflict with fish's preset bindings +fzf_configure_bindings + +# Doesn't erase autoloaded _fzf_* functions because they are not easily accessible once key bindings are erased +function _fzf_uninstall --on-event fzf_uninstall + _fzf_uninstall_bindings + + set --erase _fzf_search_vars_command + functions --erase _fzf_uninstall _fzf_migration_message _fzf_uninstall_bindings fzf_configure_bindings + complete --erase fzf_configure_bindings + + set_color cyan + echo "fzf.fish uninstalled." + echo "You may need to manually remove fzf_configure_bindings from your config.fish if you were using custom key bindings." + set_color normal +end diff --git a/dot_config/fish/conf.d/zoxide.fish b/dot_config/fish/conf.d/zoxide.fish new file mode 100644 index 0000000..169e2af --- /dev/null +++ b/dot_config/fish/conf.d/zoxide.fish @@ -0,0 +1,26 @@ +if ! status is-interactive || + ! command --query zoxide + exit +end + +functions --query __zoxide_cd_internal || functions --copy cd __zoxide_cd_internal + +set --query zoxide_hook || set --local zoxide_hook --on-variable PWD +if test -n "$zoxide_hook" + function __zoxide_hook $zoxide_hook + test -z "$fish_private_mode" + and command zoxide add -- (__zoxide_pwd) + end +end + +set --query zoxide_cmd || set --local zoxide_cmd z +if test -n "$zoxide_cmd" + function $zoxide_cmd + __zoxide_z $argv + end + complete $zoxide_cmd --no-files -a '(__zoxide_z_complete)' + + function "$zoxide_cmd"i + __zoxide_zi $argv + end +end diff --git a/dot_config/fish/config.fish b/dot_config/fish/config.fish new file mode 100644 index 0000000..d26d1a5 --- /dev/null +++ b/dot_config/fish/config.fish @@ -0,0 +1,20 @@ +if status is-interactive + set -gx EDITOR nvim + set -gx LC_ALL en_US.UTF-8 + set -gx LANG en_US.UTF-8 + set -gx FZF_DEFAULT_COMMAND "fd --type file --color=always" + set -gx GOPATH $HOME/go + set -gx GPG_TTY $(tty) + set -gx CC "clang-16" + set -g PERL5LIB $HOME/perl5/lib/perl5 + set -g PERL_LOCAL_LIB_ROOT $HOME/perl5 + set -g PERL_MB_OPT '--install_base "/home/jan/perl5"' + set -g PERL_MM_OPT 'INSTALL_BASE=/home/jan/perl5' + set -U fish_greeting + + fish_add_path -g ~/.local/bin ~/.cargo/bin ~/perl5/bin /usr/local/bin /usr/local/sbin + fish_vi_key_bindings + + atuin init fish | source + starship init fish | source +end diff --git a/dot_config/fish/fish_plugins b/dot_config/fish/fish_plugins new file mode 100644 index 0000000..38893ce --- /dev/null +++ b/dot_config/fish/fish_plugins @@ -0,0 +1,4 @@ +jorgebucaran/fisher +kidonng/zoxide.fish +plttn/fish-eza +patrickf1/fzf.fish diff --git a/dot_config/fish/fish_variables b/dot_config/fish/fish_variables new file mode 100644 index 0000000..9055b9f --- /dev/null +++ b/dot_config/fish/fish_variables @@ -0,0 +1,74 @@ +# This file contains fish universal variable definitions. +# VERSION: 3.0 +SETUVAR --export EZA_LAAD_OPTIONS:\x2d\x2dall\x1e\x2d\x2dall\x1e\x2d\x2dbinary\x1e\x2d\x2donly\x2ddirs +SETUVAR --export EZA_LAAID_OPTIONS:\x2d\x2dall\x1e\x2d\x2dall\x1e\x2d\x2dbinary\x1e\x2d\x2dicons\x1e\x2d\x2donly\x2ddirs +SETUVAR --export EZA_LAAI_OPTIONS:\x2d\x2dall\x1e\x2d\x2dall\x1e\x2d\x2dbinary\x1e\x2d\x2dicons +SETUVAR --export EZA_LAA_OPTIONS:\x2d\x2dall\x1e\x2d\x2dall\x1e\x2d\x2dbinary +SETUVAR --export EZA_LAD_OPTIONS:\x2d\x2dall\x1e\x2d\x2dbinary\x1e\x2d\x2donly\x2ddirs +SETUVAR --export EZA_LAID_OPTIONS:\x2d\x2dall\x1e\x2d\x2dbinary\x1e\x2d\x2dicons\x1e\x2d\x2donly\x2ddirs +SETUVAR --export EZA_LAI_OPTIONS:\x2d\x2dall\x1e\x2d\x2dbinary\x1e\x2d\x2dicons +SETUVAR --export EZA_LA_OPTIONS:\x2d\x2dall\x1e\x2d\x2dbinary +SETUVAR --export EZA_LC_OPTIONS:\x2d\x2dacross +SETUVAR --export EZA_LD_OPTIONS:\x2d\x2donly\x2ddirs +SETUVAR --export EZA_LE_OPTIONS:\x2d\x2dextended\x1e\x2d\x2dlong +SETUVAR --export EZA_LG_OPTIONS:\x2d\x2dgit\x1e\x2d\x2dgit\x2dignore\x1e\x2d\x2dlong +SETUVAR --export EZA_LID_OPTIONS:\x2d\x2dicons\x1e\x2d\x2donly\x2ddirs +SETUVAR --export EZA_LI_OPTIONS:\x2d\x2dicons +SETUVAR --export EZA_LL_OPTIONS:\x2d\x2dlong +SETUVAR --export EZA_LO_OPTIONS:\x2d\x2doneline +SETUVAR --export EZA_LT_OPTIONS:\x2d\x2dtree\x1e\x2d\x2dlevel +SETUVAR --export EZA_L_OPTIONS:\x1d +SETUVAR --export EZA_STANDARD_OPTIONS:\x2d\x2dgroup\x1e\x2d\x2dheader\x1e\x2d\x2dgroup\x2ddirectories\x2dfirst +SETUVAR --export __FISH_EZA_ALIASES:l\x1ela\x1eld\x1eli\x1elid\x1elaa\x1elad\x1elai\x1elaid\x1elaad\x1elaai\x1elaaid\x1ell\x1ella\x1elld\x1elli\x1ellid\x1ellaa\x1ellad\x1ellai\x1ellaid\x1ellaad\x1ellaai\x1ellaaid\x1elg\x1elga\x1elgd\x1elgi\x1elgid\x1elgaa\x1elgad\x1elgai\x1elgaid\x1elgaad\x1elgaai\x1elgaaid\x1ele\x1elea\x1eled\x1elei\x1eleid\x1eleaa\x1elead\x1eleai\x1eleaid\x1eleaad\x1eleaai\x1eleaaid\x1elt\x1elta\x1eltd\x1elti\x1eltid\x1eltad\x1eltai\x1eltaid\x1eltaad\x1eltaai\x1eltaaid\x1elc\x1elca\x1elcd\x1elci\x1elcid\x1elcaa\x1elcad\x1elcai\x1elcaid\x1elcaad\x1elcaai\x1elcaaid\x1elo\x1eloa\x1elod\x1eloi\x1eloid\x1eloaa\x1eload\x1eloai\x1eloaid\x1eloaad\x1eloaai\x1eloaaid +SETUVAR --export __FISH_EZA_BASE_ALIASES:l\x1ell\x1elg\x1ele\x1elt\x1elc\x1elo +SETUVAR --export __FISH_EZA_EXPANDED:a\x1ed\x1ei\x1eid\x1eaa\x1ead\x1eai\x1eaid\x1eaad\x1eaai\x1eaaid +SETUVAR --export __FISH_EZA_EXPANDED_OPT_NAME:LA\x1eLD\x1eLI\x1eLID\x1eLAA\x1eLAD\x1eLAI\x1eLAID\x1eLAAD\x1eLAAI\x1eLAAID +SETUVAR --export __FISH_EZA_OPT_NAMES:EZA_L_OPTIONS\x1eEZA_LA_OPTIONS\x1eEZA_LD_OPTIONS\x1eEZA_LI_OPTIONS\x1eEZA_LID_OPTIONS\x1eEZA_LAA_OPTIONS\x1eEZA_LAD_OPTIONS\x1eEZA_LAI_OPTIONS\x1eEZA_LAID_OPTIONS\x1eEZA_LAAD_OPTIONS\x1eEZA_LAAI_OPTIONS\x1eEZA_LAAID_OPTIONS\x1eEZA_LL_OPTIONS\x1eEZA_LG_OPTIONS\x1eEZA_LE_OPTIONS\x1eEZA_LT_OPTIONS\x1eEZA_LC_OPTIONS\x1eEZA_LO_OPTIONS +SETUVAR --export __FISH_EZA_SORT_OPTIONS:name\x1e\x2ename\x1esize\x1eext\x1emod\x1eold\x1eacc\x1ecr\x1einode +SETUVAR __fish_initialized:3400 +SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish +SETUVAR _fisher_kidonng_2F_zoxide_2E_fish_files:\x7e/\x2econfig/fish/functions/__zoxide_cd\x2efish\x1e\x7e/\x2econfig/fish/functions/__zoxide_pwd\x2efish\x1e\x7e/\x2econfig/fish/functions/__zoxide_z\x2efish\x1e\x7e/\x2econfig/fish/functions/__zoxide_z_complete\x2efish\x1e\x7e/\x2econfig/fish/functions/__zoxide_zi\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/zoxide\x2efish +SETUVAR _fisher_patrickf1_2F_fzf_2E_fish_files:\x7e/\x2econfig/fish/functions/_fzf_configure_bindings_help\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_extract_var_info\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_preview_changed_file\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_preview_file\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_report_diff_type\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_report_file_type\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_directory\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_git_log\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_git_status\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_history\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_processes\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_variables\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_wrapper\x2efish\x1e\x7e/\x2econfig/fish/functions/fzf_configure_bindings\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/fzf\x2efish\x1e\x7e/\x2econfig/fish/completions/fzf_configure_bindings\x2efish +SETUVAR _fisher_plttn_2F_fish_2D_eza_files:\x7e/\x2econfig/fish/functions/eza_git\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/fish\x2deza\x2efish +SETUVAR _fisher_plugins:jorgebucaran/fisher\x1ekidonng/zoxide\x2efish\x1eplttn/fish\x2deza\x1epatrickf1/fzf\x2efish +SETUVAR _fisher_upgraded_to_4_4:\x1d +SETUVAR fish_color_autosuggestion:4c566a +SETUVAR fish_color_cancel:\x2d\x2dreverse +SETUVAR fish_color_command:88c0d0 +SETUVAR fish_color_comment:4c566a\x1e\x2d\x2ditalics +SETUVAR fish_color_cwd:5e81ac +SETUVAR fish_color_cwd_root:bf616a +SETUVAR fish_color_end:81a1c1 +SETUVAR fish_color_error:bf616a +SETUVAR fish_color_escape:ebcb8b +SETUVAR fish_color_history_current:e5e9f0\x1e\x2d\x2dbold +SETUVAR fish_color_host:a3be8c +SETUVAR fish_color_host_remote:ebcb8b +SETUVAR fish_color_keyword:81a1c1 +SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue +SETUVAR fish_color_normal:normal +SETUVAR fish_color_operator:81a1c1 +SETUVAR fish_color_option:8fbcbb +SETUVAR fish_color_param:d8dee9 +SETUVAR fish_color_quote:a3be8c +SETUVAR fish_color_redirection:b48ead\x1e\x2d\x2dbold +SETUVAR fish_color_search_match:\x2d\x2dbold\x1e\x2d\x2dbackground\x3d434c5e +SETUVAR fish_color_selection:d8dee9\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3d434c5e +SETUVAR fish_color_status:bf616a +SETUVAR fish_color_user:a3be8c +SETUVAR fish_color_valid_path:\x2d\x2dunderline +SETUVAR fish_greeting:\x1d +SETUVAR fish_key_bindings:fish_vi_key_bindings +SETUVAR fish_pager_color_background:\x1d +SETUVAR fish_pager_color_completion:e5e9f0 +SETUVAR fish_pager_color_description:ebcb8b\x1e\x2d\x2ditalics +SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline +SETUVAR fish_pager_color_progress:3b4252\x1e\x2d\x2dbackground\x3dd08770 +SETUVAR fish_pager_color_secondary_background:\x1d +SETUVAR fish_pager_color_secondary_completion:\x1d +SETUVAR fish_pager_color_secondary_description:\x1d +SETUVAR fish_pager_color_secondary_prefix:\x1d +SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3d434c5e +SETUVAR fish_pager_color_selected_completion:\x1d +SETUVAR fish_pager_color_selected_description:\x1d +SETUVAR fish_pager_color_selected_prefix:\x1d diff --git a/dot_config/fish/functions/__zoxide_cd.fish b/dot_config/fish/functions/__zoxide_cd.fish new file mode 100644 index 0000000..d5a8b2b --- /dev/null +++ b/dot_config/fish/functions/__zoxide_cd.fish @@ -0,0 +1,6 @@ +function __zoxide_cd + __zoxide_cd_internal $argv + if test "$_ZO_ECHO" = 1 + __zoxide_pwd + end +end diff --git a/dot_config/fish/functions/__zoxide_pwd.fish b/dot_config/fish/functions/__zoxide_pwd.fish new file mode 100644 index 0000000..49f9357 --- /dev/null +++ b/dot_config/fish/functions/__zoxide_pwd.fish @@ -0,0 +1,7 @@ +function __zoxide_pwd + if test "$_ZO_RESOLVE_SYMLINKS" = 1 + builtin pwd -P + else + builtin pwd -L + end +end diff --git a/dot_config/fish/functions/__zoxide_z.fish b/dot_config/fish/functions/__zoxide_z.fish new file mode 100644 index 0000000..bb24f69 --- /dev/null +++ b/dot_config/fish/functions/__zoxide_z.fish @@ -0,0 +1,13 @@ +function __zoxide_z + set --local argc (count $argv) + if test $argc -eq 0 + __zoxide_cd $HOME + else if test "$argv" = - + __zoxide_cd - + else if test $argc -eq 1 -a -d $argv[1] + __zoxide_cd $argv[1] + else + set --local result (command zoxide query --exclude (__zoxide_pwd) -- $argv) + and __zoxide_cd $result + end +end diff --git a/dot_config/fish/functions/__zoxide_z_complete.fish b/dot_config/fish/functions/__zoxide_z_complete.fish new file mode 100644 index 0000000..9e6196f --- /dev/null +++ b/dot_config/fish/functions/__zoxide_z_complete.fish @@ -0,0 +1,15 @@ +function __zoxide_z_complete + set --local tokens (commandline --current-process --tokenize) + set --local curr_tokens (commandline --cut-at-cursor --current-process --tokenize) + + if test (count $tokens) -le 2 -a (count $curr_tokens) -eq 1 + # If there are < 2 arguments, use `cd` completions. + __fish_complete_directories "$tokens[2]" '' + else if test (count $tokens) -eq (count $curr_tokens) + # If the last argument is empty, use interactive selection. + set --local query $tokens[2..-1] + set --local result (zoxide query --interactive -- $query) + commandline --current-process "$tokens[1] "(string escape $result) + commandline --function repaint + end +end diff --git a/dot_config/fish/functions/__zoxide_zi.fish b/dot_config/fish/functions/__zoxide_zi.fish new file mode 100644 index 0000000..35837ac --- /dev/null +++ b/dot_config/fish/functions/__zoxide_zi.fish @@ -0,0 +1,4 @@ +function __zoxide_zi + set --local result (command zoxide query --interactive -- $argv) + and __zoxide_cd $result +end diff --git a/dot_config/fish/functions/_fzf_configure_bindings_help.fish b/dot_config/fish/functions/_fzf_configure_bindings_help.fish new file mode 100644 index 0000000..ecfe68e --- /dev/null +++ b/dot_config/fish/functions/_fzf_configure_bindings_help.fish @@ -0,0 +1,43 @@ +function _fzf_configure_bindings_help --description "Prints the help message for fzf_configure_bindings." + echo "\ +USAGE: + fzf_configure_bindings [--COMMAND=[KEY_SEQUENCE]...] + +DESCRIPTION + fzf_configure_bindings installs key bindings for fzf.fish's commands and erases any bindings it + previously installed. It installs bindings for both default and insert modes. fzf.fish executes + it without options on fish startup to install the out-of-the-box key bindings. + + By default, commands are bound to a mnemonic key sequence, shown below. Each command's binding + can be configured using a namesake corresponding option: + COMMAND | DEFAULT KEY SEQUENCE | CORRESPONDING OPTION + Search Directory | Ctrl+Alt+F (F for file) | --directory + Search Git Log | Ctrl+Alt+L (L for log) | --git_log + Search Git Status | Ctrl+Alt+S (S for status) | --git_status + Search History | Ctrl+R (R for reverse) | --history + Search Processes | Ctrl+Alt+P (P for process) | --processes + Search Variables | Ctrl+V (V for variable) | --variables + Override a command's binding by specifying its corresponding option with the desired key + sequence. Disable a command's binding by specifying its corresponding option with no value. + + Because fzf_configure_bindings erases bindings it previously installed, it can be cleanly + executed multiple times. Once the desired fzf_configure_bindings command has been found, add it + to your config.fish in order to persist the customized bindings. + + In terms of validation, fzf_configure_bindings fails if passed unknown options. It expects an + equals sign between an option's name and value. However, it does not validate key sequences. + + Pass -h or --help to print this help message and exit. + +EXAMPLES + Default bindings but bind Search Directory to Ctrl+F and Search Variables to Ctrl+Alt+V + \$ fzf_configure_bindings --directory=\cf --variables=\e\cv + Default bindings but disable Search History + \$ fzf_configure_bindings --history= + An agglomeration of different options + \$ fzf_configure_bindings --git_status=\cg --history=\ch --variables= --processes= + +SEE Also + To learn more about fish key bindings, see bind(1) and fish_key_reader(1). +" +end diff --git a/dot_config/fish/functions/_fzf_extract_var_info.fish b/dot_config/fish/functions/_fzf_extract_var_info.fish new file mode 100644 index 0000000..dd4e952 --- /dev/null +++ b/dot_config/fish/functions/_fzf_extract_var_info.fish @@ -0,0 +1,15 @@ +# helper function for _fzf_search_variables +function _fzf_extract_var_info --argument-names variable_name set_show_output --description "Extract and reformat lines pertaining to \$variable_name from \$set_show_output." + # Extract only the lines about the variable, all of which begin with either + # $variable_name: ...or... $variable_name[ + string match --regex "^\\\$$variable_name(?::|\[).*" <$set_show_output | + + # Strip the variable name prefix, including ": " for scope info lines + string replace --regex "^\\\$$variable_name(?:: )?" '' | + + # Distill the lines of values, replacing... + # [1]: |value| + # ...with... + # [1] value + string replace --regex ": \|(.*)\|" ' $1' +end diff --git a/dot_config/fish/functions/_fzf_preview_changed_file.fish b/dot_config/fish/functions/_fzf_preview_changed_file.fish new file mode 100644 index 0000000..78dd561 --- /dev/null +++ b/dot_config/fish/functions/_fzf_preview_changed_file.fish @@ -0,0 +1,49 @@ +# helper for _fzf_search_git_status +# arg should be a line from git status --short, e.g. +# MM functions/_fzf_preview_changed_file.fish +# D README.md +# R LICENSE -> "New License" +function _fzf_preview_changed_file --argument-names path_status --description "Show the git diff of the given file." + # remove quotes because they'll be interpreted literally by git diff + # no need to requote when referencing $path because fish does not perform word splitting + # https://fishshell.com/docs/current/fish_for_bash_users.html + set -f path (string unescape (string sub --start 4 $path_status)) + # first letter of short format shows index, second letter shows working tree + # https://git-scm.com/docs/git-status/2.35.0#_short_format + set -f index_status (string sub --length 1 $path_status) + set -f working_tree_status (string sub --start 2 --length 1 $path_status) + + set -f diff_opts --color=always + + if test $index_status = '?' + _fzf_report_diff_type Untracked + _fzf_preview_file $path + else if contains {$index_status}$working_tree_status DD AU UD UA DU AA UU + # Unmerged statuses taken directly from git status help's short format table + # Unmerged statuses are mutually exclusive with other statuses, so if we see + # these, then safe to assume the path is unmerged + _fzf_report_diff_type Unmerged + git diff $diff_opts -- $path + else + if test $index_status != ' ' + _fzf_report_diff_type Staged + + # renames are only detected in the index, never working tree, so only need to test for it here + # https://stackoverflow.com/questions/73954214 + if test $index_status = R + # diff the post-rename path with the original path, otherwise the diff will show the entire file as being added + set -f orig_and_new_path (string split --max 1 -- ' -> ' $path) + git diff --staged $diff_opts -- $orig_and_new_path[1] $orig_and_new_path[2] + # path currently has the form of "original -> current", so we need to correct it before it's used below + set path $orig_and_new_path[2] + else + git diff --staged $diff_opts -- $path + end + end + + if test $working_tree_status != ' ' + _fzf_report_diff_type Unstaged + git diff $diff_opts -- $path + end + end +end diff --git a/dot_config/fish/functions/_fzf_preview_file.fish b/dot_config/fish/functions/_fzf_preview_file.fish new file mode 100644 index 0000000..c926475 --- /dev/null +++ b/dot_config/fish/functions/_fzf_preview_file.fish @@ -0,0 +1,43 @@ +# helper function for _fzf_search_directory and _fzf_search_git_status +function _fzf_preview_file --description "Print a preview for the given file based on its file type." + # because there's no way to guarantee that _fzf_search_directory passes the path to _fzf_preview_file + # as one argument, we collect all the arguments into one single variable and treat that as the path + set -f file_path $argv + + if test -L "$file_path" # symlink + # notify user and recurse on the target of the symlink, which can be any of these file types + set -l target_path (realpath "$file_path") + + set_color yellow + echo "'$file_path' is a symlink to '$target_path'." + set_color normal + + _fzf_preview_file "$target_path" + else if test -f "$file_path" # regular file + if set --query fzf_preview_file_cmd + # need to escape quotes to make sure eval receives file_path as a single arg + eval "$fzf_preview_file_cmd '$file_path'" + else + bat --style=numbers --color=always "$file_path" + end + else if test -d "$file_path" # directory + if set --query fzf_preview_dir_cmd + # see above + eval "$fzf_preview_dir_cmd '$file_path'" + else + # -A list hidden files as well, except for . and .. + # -F helps classify files by appending symbols after the file name + command ls -A -F "$file_path" + end + else if test -c "$file_path" + _fzf_report_file_type "$file_path" "character device file" + else if test -b "$file_path" + _fzf_report_file_type "$file_path" "block device file" + else if test -S "$file_path" + _fzf_report_file_type "$file_path" socket + else if test -p "$file_path" + _fzf_report_file_type "$file_path" "named pipe" + else + echo "$file_path doesn't exist." >&2 + end +end diff --git a/dot_config/fish/functions/_fzf_report_diff_type.fish b/dot_config/fish/functions/_fzf_report_diff_type.fish new file mode 100644 index 0000000..cc26fb3 --- /dev/null +++ b/dot_config/fish/functions/_fzf_report_diff_type.fish @@ -0,0 +1,18 @@ +# helper for _fzf_preview_changed_file +# prints out something like +# ╭────────╮ +# │ Staged │ +# ╰────────╯ +function _fzf_report_diff_type --argument-names diff_type --description "Print a distinct colored header meant to preface a git patch." + # number of "-" to draw is the length of the string to box + 2 for padding + set -f repeat_count (math 2 + (string length $diff_type)) + set -f line (string repeat --count $repeat_count ─) + set -f top_border ╭$line╮ + set -f btm_border ╰$line╯ + + set_color yellow + echo $top_border + echo "│ $diff_type │" + echo $btm_border + set_color normal +end diff --git a/dot_config/fish/functions/_fzf_report_file_type.fish b/dot_config/fish/functions/_fzf_report_file_type.fish new file mode 100644 index 0000000..49e02e1 --- /dev/null +++ b/dot_config/fish/functions/_fzf_report_file_type.fish @@ -0,0 +1,6 @@ +# helper function for _fzf_preview_file +function _fzf_report_file_type --argument-names file_path file_type --description "Explain the file type for a file." + set_color red + echo "Cannot preview '$file_path': it is a $file_type." + set_color normal +end diff --git a/dot_config/fish/functions/_fzf_search_directory.fish b/dot_config/fish/functions/_fzf_search_directory.fish new file mode 100644 index 0000000..4541eec --- /dev/null +++ b/dot_config/fish/functions/_fzf_search_directory.fish @@ -0,0 +1,33 @@ +function _fzf_search_directory --description "Search the current directory. Replace the current token with the selected file paths." + # Directly use fd binary to avoid output buffering delay caused by a fd alias, if any. + # Debian-based distros install fd as fdfind and the fd package is something else, so + # check for fdfind first. Fall back to "fd" for a clear error message. + set -f fd_cmd (command -v fdfind || command -v fd || echo "fd") + set -f --append fd_cmd --color=always $fzf_fd_opts + + set -f fzf_arguments --multi --ansi $fzf_directory_opts + set -f token (commandline --current-token) + # expand any variables or leading tilde (~) in the token + set -f expanded_token (eval echo -- $token) + # unescape token because it's already quoted so backslashes will mess up the path + set -f unescaped_exp_token (string unescape -- $expanded_token) + + # If the current token is a directory and has a trailing slash, + # then use it as fd's base directory. + if string match --quiet -- "*/" $unescaped_exp_token && test -d "$unescaped_exp_token" + set --append fd_cmd --base-directory=$unescaped_exp_token + # use the directory name as fzf's prompt to indicate the search is limited to that directory + set --prepend fzf_arguments --prompt="Directory $unescaped_exp_token> " --preview="_fzf_preview_file $expanded_token{}" + set -f file_paths_selected $unescaped_exp_token($fd_cmd 2>/dev/null | _fzf_wrapper $fzf_arguments) + else + set --prepend fzf_arguments --prompt="Directory> " --query="$unescaped_exp_token" --preview='_fzf_preview_file {}' + set -f file_paths_selected ($fd_cmd 2>/dev/null | _fzf_wrapper $fzf_arguments) + end + + + if test $status -eq 0 + commandline --current-token --replace -- (string escape -- $file_paths_selected | string join ' ') + end + + commandline --function repaint +end diff --git a/dot_config/fish/functions/_fzf_search_git_log.fish b/dot_config/fish/functions/_fzf_search_git_log.fish new file mode 100644 index 0000000..aa54724 --- /dev/null +++ b/dot_config/fish/functions/_fzf_search_git_log.fish @@ -0,0 +1,36 @@ +function _fzf_search_git_log --description "Search the output of git log and preview commits. Replace the current token with the selected commit hash." + if not git rev-parse --git-dir >/dev/null 2>&1 + echo '_fzf_search_git_log: Not in a git repository.' >&2 + else + if not set --query fzf_git_log_format + # %h gives you the abbreviated commit hash, which is useful for saving screen space, but we will have to expand it later below + set -f fzf_git_log_format '%C(bold blue)%h%C(reset) - %C(cyan)%ad%C(reset) %C(yellow)%d%C(reset) %C(normal)%s%C(reset) %C(dim normal)[%an]%C(reset)' + end + + set -f preview_cmd 'git show --color=always --stat --patch {1}' + if set --query fzf_diff_highlighter + set preview_cmd "$preview_cmd | $fzf_diff_highlighter" + end + + set -f selected_log_lines ( + git log --no-show-signature --color=always --format=format:$fzf_git_log_format --date=short | \ + _fzf_wrapper --ansi \ + --multi \ + --scheme=history \ + --prompt="Git Log> " \ + --preview=$preview_cmd \ + --query=(commandline --current-token) \ + $fzf_git_log_opts + ) + if test $status -eq 0 + for line in $selected_log_lines + set -f abbreviated_commit_hash (string split --field 1 " " $line) + set -f full_commit_hash (git rev-parse $abbreviated_commit_hash) + set -f --append commit_hashes $full_commit_hash + end + commandline --current-token --replace (string join ' ' $commit_hashes) + end + end + + commandline --function repaint +end diff --git a/dot_config/fish/functions/_fzf_search_git_status.fish b/dot_config/fish/functions/_fzf_search_git_status.fish new file mode 100644 index 0000000..358f88c --- /dev/null +++ b/dot_config/fish/functions/_fzf_search_git_status.fish @@ -0,0 +1,41 @@ +function _fzf_search_git_status --description "Search the output of git status. Replace the current token with the selected file paths." + if not git rev-parse --git-dir >/dev/null 2>&1 + echo '_fzf_search_git_status: Not in a git repository.' >&2 + else + set -f preview_cmd '_fzf_preview_changed_file {}' + if set --query fzf_diff_highlighter + set preview_cmd "$preview_cmd | $fzf_diff_highlighter" + end + + set -f selected_paths ( + # Pass configuration color.status=always to force status to use colors even though output is sent to a pipe + git -c color.status=always status --short | + _fzf_wrapper --ansi \ + --multi \ + --prompt="Git Status> " \ + --query=(commandline --current-token) \ + --preview=$preview_cmd \ + --nth="2.." \ + $fzf_git_status_opts + ) + if test $status -eq 0 + # git status --short automatically escapes the paths of most files for us so not going to bother trying to handle + # the few edges cases of weird file names that should be extremely rare (e.g. "this;needs;escaping") + set -f cleaned_paths + + for path in $selected_paths + if test (string sub --length 1 $path) = R + # path has been renamed and looks like "R LICENSE -> LICENSE.md" + # extract the path to use from after the arrow + set --append cleaned_paths (string split -- "-> " $path)[-1] + else + set --append cleaned_paths (string sub --start=4 $path) + end + end + + commandline --current-token --replace -- (string join ' ' $cleaned_paths) + end + end + + commandline --function repaint +end diff --git a/dot_config/fish/functions/_fzf_search_history.fish b/dot_config/fish/functions/_fzf_search_history.fish new file mode 100644 index 0000000..cafbce9 --- /dev/null +++ b/dot_config/fish/functions/_fzf_search_history.fish @@ -0,0 +1,39 @@ +function _fzf_search_history --description "Search command history. Replace the command line with the selected command." + # history merge incorporates history changes from other fish sessions + # it errors out if called in private mode + if test -z "$fish_private_mode" + builtin history merge + end + + if not set --query fzf_history_time_format + # Reference https://devhints.io/strftime to understand strftime format symbols + set -f fzf_history_time_format "%m-%d %H:%M:%S" + end + + # Delinate time from command in history entries using the vertical box drawing char (U+2502). + # Then, to get raw command from history entries, delete everything up to it. The ? on regex is + # necessary to make regex non-greedy so it won't match into commands containing the char. + set -f time_prefix_regex '^.*? │ ' + # Delinate commands throughout pipeline using null rather than newlines because commands can be multi-line + set -f commands_selected ( + builtin history --null --show-time="$fzf_history_time_format │ " | + _fzf_wrapper --read0 \ + --print0 \ + --multi \ + --scheme=history \ + --prompt="History> " \ + --query=(commandline) \ + --preview="string replace --regex '$time_prefix_regex' '' -- {} | fish_indent --ansi" \ + --preview-window="bottom:3:wrap" \ + $fzf_history_opts | + string split0 | + # remove timestamps from commands selected + string replace --regex $time_prefix_regex '' + ) + + if test $status -eq 0 + commandline --replace -- $commands_selected + end + + commandline --function repaint +end diff --git a/dot_config/fish/functions/_fzf_search_processes.fish b/dot_config/fish/functions/_fzf_search_processes.fish new file mode 100644 index 0000000..133a880 --- /dev/null +++ b/dot_config/fish/functions/_fzf_search_processes.fish @@ -0,0 +1,32 @@ +function _fzf_search_processes --description "Search all running processes. Replace the current token with the pid of the selected process." + # Directly use ps command because it is often aliased to a different command entirely + # or with options that dirty the search results and preview output + set -f ps_cmd (command -v ps || echo "ps") + # use all caps to be consistent with ps default format + # snake_case because ps doesn't seem to allow spaces in the field names + set -f ps_preview_fmt (string join ',' 'pid' 'ppid=PARENT' 'user' '%cpu' 'rss=RSS_IN_KB' 'start=START_TIME' 'command') + set -f processes_selected ( + $ps_cmd -A -opid,command | \ + _fzf_wrapper --multi \ + --prompt="Processes> " \ + --query (commandline --current-token) \ + --ansi \ + # first line outputted by ps is a header, so we need to mark it as so + --header-lines=1 \ + # ps uses exit code 1 if the process was not found, in which case show an message explaining so + --preview="$ps_cmd -o '$ps_preview_fmt' -p {1} || echo 'Cannot preview {1} because it exited.'" \ + --preview-window="bottom:4:wrap" \ + $fzf_processes_opts + ) + + if test $status -eq 0 + for process in $processes_selected + set -f --append pids_selected (string split --no-empty --field=1 -- " " $process) + end + + # string join to replace the newlines outputted by string split with spaces + commandline --current-token --replace -- (string join ' ' $pids_selected) + end + + commandline --function repaint +end diff --git a/dot_config/fish/functions/_fzf_search_variables.fish b/dot_config/fish/functions/_fzf_search_variables.fish new file mode 100644 index 0000000..52a7c70 --- /dev/null +++ b/dot_config/fish/functions/_fzf_search_variables.fish @@ -0,0 +1,47 @@ +# This function expects the following two arguments: +# argument 1 = output of (set --show | psub), i.e. a file with the scope info and values of all variables +# argument 2 = output of (set --names | psub), i.e. a file with all variable names +function _fzf_search_variables --argument-names set_show_output set_names_output --description "Search and preview shell variables. Replace the current token with the selected variable." + if test -z "$set_names_output" + printf '%s\n' '_fzf_search_variables requires 2 arguments.' >&2 + + commandline --function repaint + return 22 # 22 means invalid argument in POSIX + end + + # Exclude the history variable from being piped into fzf because + # 1. it's not included in $set_names_output + # 2. it tends to be a very large value => increases computation time + # 3._fzf_search_history is a much better way to examine history anyway + set -f all_variable_names (string match --invert history <$set_names_output) + + set -f current_token (commandline --current-token) + # Use the current token to pre-populate fzf's query. If the current token begins + # with a $, remove it from the query so that it will better match the variable names + set -f cleaned_curr_token (string replace -- '$' '' $current_token) + + set -f variable_names_selected ( + printf '%s\n' $all_variable_names | + _fzf_wrapper --preview "_fzf_extract_var_info {} $set_show_output" \ + --prompt="Variables> " \ + --preview-window="wrap" \ + --multi \ + --query=$cleaned_curr_token \ + $fzf_variables_opts + ) + + if test $status -eq 0 + # If the current token begins with a $, do not overwrite the $ when + # replacing the current token with the selected variable. + # Uses brace expansion to prepend $ to each variable name. + commandline --current-token --replace ( + if string match --quiet -- '$*' $current_token + string join " " \${$variable_names_selected} + else + string join " " $variable_names_selected + end + ) + end + + commandline --function repaint +end diff --git a/dot_config/fish/functions/_fzf_wrapper.fish b/dot_config/fish/functions/_fzf_wrapper.fish new file mode 100644 index 0000000..486e36c --- /dev/null +++ b/dot_config/fish/functions/_fzf_wrapper.fish @@ -0,0 +1,21 @@ +function _fzf_wrapper --description "Prepares some environment variables before executing fzf." + # Make sure fzf uses fish to execute preview commands, some of which + # are autoloaded fish functions so don't exist in other shells. + # Use --function so that it doesn't clobber SHELL outside this function. + set -f --export SHELL (command --search fish) + + # If neither FZF_DEFAULT_OPTS nor FZF_DEFAULT_OPTS_FILE are set, then set some sane defaults. + # See https://github.com/junegunn/fzf#environment-variables + set --query FZF_DEFAULT_OPTS FZF_DEFAULT_OPTS_FILE + if test $status -eq 2 + # cycle allows jumping between the first and last results, making scrolling faster + # layout=reverse lists results top to bottom, mimicking the familiar layouts of git log, history, and env + # border shows where the fzf window begins and ends + # height=90% leaves space to see the current command and some scrollback, maintaining context of work + # preview-window=wrap wraps long lines in the preview window, making reading easier + # marker=* makes the multi-select marker more distinguishable from the pointer (since both default to >) + set --export FZF_DEFAULT_OPTS '--cycle --layout=reverse --border --height=90% --preview-window=wrap --marker="*"' + end + + fzf $argv +end diff --git a/dot_config/fish/functions/eza_git.fish b/dot_config/fish/functions/eza_git.fish new file mode 100644 index 0000000..881039b --- /dev/null +++ b/dot_config/fish/functions/eza_git.fish @@ -0,0 +1,7 @@ +function eza_git -d "Use exa and its git options if in a git repo" + if git rev-parse --is-inside-work-tree &>/dev/null + eza $EZA_STANDARD_OPTIONS {$EZA_LL_OPTIONS} --git $argv + else + eza $EZA_STANDARD_OPTIONS {$EZA_LL_OPTIONS} $argv + end +end diff --git a/dot_config/fish/functions/fisher.fish b/dot_config/fish/functions/fisher.fish new file mode 100644 index 0000000..b1513d3 --- /dev/null +++ b/dot_config/fish/functions/fisher.fish @@ -0,0 +1,240 @@ +function fisher --argument-names cmd --description "A plugin manager for Fish" + set --query fisher_path || set --local fisher_path $__fish_config_dir + set --local fisher_version 4.4.4 + set --local fish_plugins $__fish_config_dir/fish_plugins + + switch "$cmd" + case -v --version + echo "fisher, version $fisher_version" + case "" -h --help + echo "Usage: fisher install Install plugins" + echo " fisher remove Remove installed plugins" + echo " fisher update Update installed plugins" + echo " fisher update Update all installed plugins" + echo " fisher list [] List installed plugins matching regex" + echo "Options:" + echo " -v, --version Print version" + echo " -h, --help Print this help message" + echo "Variables:" + echo " \$fisher_path Plugin installation path. Default: $__fish_config_dir" | string replace --regex -- $HOME \~ + case ls list + string match --entire --regex -- "$argv[2]" $_fisher_plugins + case install update remove + isatty || read --local --null --array stdin && set --append argv $stdin + + set --local install_plugins + set --local update_plugins + set --local remove_plugins + set --local arg_plugins $argv[2..-1] + set --local old_plugins $_fisher_plugins + set --local new_plugins + + test -e $fish_plugins && set --local file_plugins (string match --regex -- '^[^\s]+$' <$fish_plugins) + + if ! set --query argv[2] + if test "$cmd" != update + echo "fisher: Not enough arguments for command: \"$cmd\"" >&2 && return 1 + else if ! set --query file_plugins + echo "fisher: \"$fish_plugins\" file not found: \"$cmd\"" >&2 && return 1 + end + set arg_plugins $file_plugins + end + + for plugin in $arg_plugins + set plugin (test -e "$plugin" && realpath $plugin || string lower -- $plugin) + contains -- "$plugin" $new_plugins || set --append new_plugins $plugin + end + + if set --query argv[2] + for plugin in $new_plugins + if contains -- "$plugin" $old_plugins + test "$cmd" = remove && + set --append remove_plugins $plugin || + set --append update_plugins $plugin + else if test "$cmd" = install + set --append install_plugins $plugin + else + echo "fisher: Plugin not installed: \"$plugin\"" >&2 && return 1 + end + end + else + for plugin in $new_plugins + contains -- "$plugin" $old_plugins && + set --append update_plugins $plugin || + set --append install_plugins $plugin + end + + for plugin in $old_plugins + contains -- "$plugin" $new_plugins || set --append remove_plugins $plugin + end + end + + set --local pid_list + set --local source_plugins + set --local fetch_plugins $update_plugins $install_plugins + set --local fish_path (status fish-path) + + echo (set_color --bold)fisher $cmd version $fisher_version(set_color normal) + + for plugin in $fetch_plugins + set --local source (command mktemp -d) + set --append source_plugins $source + + command mkdir -p $source/{completions,conf.d,themes,functions} + + $fish_path --command " + if test -e $plugin + command cp -Rf $plugin/* $source + else + set temp (command mktemp -d) + set repo (string split -- \@ $plugin) || set repo[2] HEAD + + if set path (string replace --regex -- '^(https://)?gitlab.com/' '' \$repo[1]) + set name (string split -- / \$path)[-1] + set url https://gitlab.com/\$path/-/archive/\$repo[2]/\$name-\$repo[2].tar.gz + else + set url https://api.github.com/repos/\$repo[1]/tarball/\$repo[2] + end + + echo Fetching (set_color --underline)\$url(set_color normal) + + if command curl -q --silent -L \$url | command tar -xzC \$temp -f - 2>/dev/null + command cp -Rf \$temp/*/* $source + else + echo fisher: Invalid plugin name or host unavailable: \\\"$plugin\\\" >&2 + command rm -rf $source + end + + command rm -rf \$temp + end + + set files $source/* && string match --quiet --regex -- .+\.fish\\\$ \$files + " & + + set --append pid_list (jobs --last --pid) + end + + wait $pid_list 2>/dev/null + + for plugin in $fetch_plugins + if set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)] && test ! -e $source + if set --local index (contains --index -- "$plugin" $install_plugins) + set --erase install_plugins[$index] + else + set --erase update_plugins[(contains --index -- "$plugin" $update_plugins)] + end + end + end + + for plugin in $update_plugins $remove_plugins + if set --local index (contains --index -- "$plugin" $_fisher_plugins) + set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files + + if contains -- "$plugin" $remove_plugins + for name in (string replace --filter --regex -- '.+/conf\.d/([^/]+)\.fish$' '$1' $$plugin_files_var) + emit {$name}_uninstall + end + printf "%s\n" Removing\ (set_color red --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~ + set --erase _fisher_plugins[$index] + end + + command rm -rf (string replace -- \~ ~ $$plugin_files_var) + + functions --erase (string replace --filter --regex -- '.+/functions/([^/]+)\.fish$' '$1' $$plugin_files_var) + + for name in (string replace --filter --regex -- '.+/completions/([^/]+)\.fish$' '$1' $$plugin_files_var) + complete --erase --command $name + end + + set --erase $plugin_files_var + end + end + + if set --query update_plugins[1] || set --query install_plugins[1] + command mkdir -p $fisher_path/{functions,themes,conf.d,completions} + end + + for plugin in $update_plugins $install_plugins + set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)] + set --local files $source/{functions,themes,conf.d,completions}/* + + if set --local index (contains --index -- $plugin $install_plugins) + set --local user_files $fisher_path/{functions,themes,conf.d,completions}/* + set --local conflict_files + + for file in (string replace -- $source/ $fisher_path/ $files) + contains -- $file $user_files && set --append conflict_files $file + end + + if set --query conflict_files[1] && set --erase install_plugins[$index] + echo -s "fisher: Cannot install \"$plugin\": please remove or move conflicting files first:" \n" "$conflict_files >&2 + continue + end + end + + for file in (string replace -- $source/ "" $files) + command cp -RLf $source/$file $fisher_path/$file + end + + set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files + + set --query files[1] && set --universal $plugin_files_var (string replace -- $source $fisher_path $files | string replace -- ~ \~) + + contains -- $plugin $_fisher_plugins || set --universal --append _fisher_plugins $plugin + contains -- $plugin $install_plugins && set --local event install || set --local event update + + printf "%s\n" Installing\ (set_color --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~ + + for file in (string match --regex -- '.+/[^/]+\.fish$' $$plugin_files_var | string replace -- \~ ~) + source $file + if set --local name (string replace --regex -- '.+conf\.d/([^/]+)\.fish$' '$1' $file) + emit {$name}_$event + end + end + end + + command rm -rf $source_plugins + + if set --query _fisher_plugins[1] + set --local commit_plugins + + for plugin in $file_plugins + contains -- (string lower -- $plugin) (string lower -- $_fisher_plugins) && set --append commit_plugins $plugin + end + + for plugin in $_fisher_plugins + contains -- (string lower -- $plugin) (string lower -- $commit_plugins) || set --append commit_plugins $plugin + end + + printf "%s\n" $commit_plugins >$fish_plugins + else + set --erase _fisher_plugins + command rm -f $fish_plugins + end + + set --local total (count $install_plugins) (count $update_plugins) (count $remove_plugins) + + test "$total" != "0 0 0" && echo (string join ", " ( + test $total[1] = 0 || echo "Installed $total[1]") ( + test $total[2] = 0 || echo "Updated $total[2]") ( + test $total[3] = 0 || echo "Removed $total[3]") + ) plugin/s + case \* + echo "fisher: Unknown command: \"$cmd\"" >&2 && return 1 + end +end + +if ! set --query _fisher_upgraded_to_4_4 + set --universal _fisher_upgraded_to_4_4 + if functions --query _fisher_list + set --query XDG_DATA_HOME[1] || set --local XDG_DATA_HOME ~/.local/share + command rm -rf $XDG_DATA_HOME/fisher + functions --erase _fisher_{list,plugin_parse} + fisher update >/dev/null 2>/dev/null + else + for var in (set --names | string match --entire --regex '^_fisher_.+_files$') + set $var (string replace -- ~ \~ $$var) + end + functions --erase _fisher_fish_postexec + end +end diff --git a/dot_config/fish/functions/fzf_configure_bindings.fish b/dot_config/fish/functions/fzf_configure_bindings.fish new file mode 100644 index 0000000..4b4e7a2 --- /dev/null +++ b/dot_config/fish/functions/fzf_configure_bindings.fish @@ -0,0 +1,46 @@ +# Always installs bindings for insert and default mode for simplicity and b/c it has almost no side-effect +# https://gitter.im/fish-shell/fish-shell?at=60a55915ee77a74d685fa6b1 +function fzf_configure_bindings --description "Installs the default key bindings for fzf.fish with user overrides passed as options." + # no need to install bindings if not in interactive mode or running tests + status is-interactive || test "$CI" = true; or return + + set -f options_spec h/help 'directory=?' 'git_log=?' 'git_status=?' 'history=?' 'processes=?' 'variables=?' + argparse --max-args=0 --ignore-unknown $options_spec -- $argv 2>/dev/null + if test $status -ne 0 + echo "Invalid option or a positional argument was provided." >&2 + _fzf_configure_bindings_help + return 22 + else if set --query _flag_help + _fzf_configure_bindings_help + return + else + # Initialize with default key sequences and then override or disable them based on flags + # index 1 = directory, 2 = git_log, 3 = git_status, 4 = history, 5 = processes, 6 = variables + set -f key_sequences \e\cf \e\cl \e\cs \cr \e\cp \cv # \c = control, \e = escape + set --query _flag_directory && set key_sequences[1] "$_flag_directory" + set --query _flag_git_log && set key_sequences[2] "$_flag_git_log" + set --query _flag_git_status && set key_sequences[3] "$_flag_git_status" + set --query _flag_history && set key_sequences[4] "$_flag_history" + set --query _flag_processes && set key_sequences[5] "$_flag_processes" + set --query _flag_variables && set key_sequences[6] "$_flag_variables" + + # If fzf bindings already exists, uninstall it first for a clean slate + if functions --query _fzf_uninstall_bindings + _fzf_uninstall_bindings + end + + for mode in default insert + test -n $key_sequences[1] && bind --mode $mode $key_sequences[1] _fzf_search_directory + test -n $key_sequences[2] && bind --mode $mode $key_sequences[2] _fzf_search_git_log + test -n $key_sequences[3] && bind --mode $mode $key_sequences[3] _fzf_search_git_status + test -n $key_sequences[4] && bind --mode $mode $key_sequences[4] _fzf_search_history + test -n $key_sequences[5] && bind --mode $mode $key_sequences[5] _fzf_search_processes + test -n $key_sequences[6] && bind --mode $mode $key_sequences[6] "$_fzf_search_vars_command" + end + + function _fzf_uninstall_bindings --inherit-variable key_sequences + bind --erase -- $key_sequences + bind --erase --mode insert -- $key_sequences + end + end +end diff --git a/dot_config/fish/functions/l.fish b/dot_config/fish/functions/l.fish new file mode 100644 index 0000000..110212d --- /dev/null +++ b/dot_config/fish/functions/l.fish @@ -0,0 +1,4 @@ +function l --wraps='eza $EZA_STANDARD_OPTIONS $EZA_L_OPTIONS' --description 'alias l eza $EZA_STANDARD_OPTIONS $EZA_L_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_L_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/la.fish b/dot_config/fish/functions/la.fish new file mode 100644 index 0000000..9c63021 --- /dev/null +++ b/dot_config/fish/functions/la.fish @@ -0,0 +1,4 @@ +function la --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_L_OPTIONS' --description 'alias la eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_L_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_L_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/laa.fish b/dot_config/fish/functions/laa.fish new file mode 100644 index 0000000..111b584 --- /dev/null +++ b/dot_config/fish/functions/laa.fish @@ -0,0 +1,4 @@ +function laa --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAA_OPTIONS $EZA_L_OPTIONS' --description 'alias laa eza $EZA_STANDARD_OPTIONS $EZA_LAA_OPTIONS $EZA_L_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAA_OPTIONS $EZA_L_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/laad.fish b/dot_config/fish/functions/laad.fish new file mode 100644 index 0000000..4ba2306 --- /dev/null +++ b/dot_config/fish/functions/laad.fish @@ -0,0 +1,4 @@ +function laad --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_L_OPTIONS' --description 'alias laad eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_L_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_L_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/laai.fish b/dot_config/fish/functions/laai.fish new file mode 100644 index 0000000..8bc8463 --- /dev/null +++ b/dot_config/fish/functions/laai.fish @@ -0,0 +1,4 @@ +function laai --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_L_OPTIONS' --description 'alias laai eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_L_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_L_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/laaid.fish b/dot_config/fish/functions/laaid.fish new file mode 100644 index 0000000..61f9388 --- /dev/null +++ b/dot_config/fish/functions/laaid.fish @@ -0,0 +1,4 @@ +function laaid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_L_OPTIONS' --description 'alias laaid eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_L_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_L_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lad.fish b/dot_config/fish/functions/lad.fish new file mode 100644 index 0000000..7ab9591 --- /dev/null +++ b/dot_config/fish/functions/lad.fish @@ -0,0 +1,4 @@ +function lad --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_L_OPTIONS' --description 'alias lad eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_L_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_L_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lai.fish b/dot_config/fish/functions/lai.fish new file mode 100644 index 0000000..9157092 --- /dev/null +++ b/dot_config/fish/functions/lai.fish @@ -0,0 +1,4 @@ +function lai --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_L_OPTIONS' --description 'alias lai eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_L_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_L_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/laid.fish b/dot_config/fish/functions/laid.fish new file mode 100644 index 0000000..147960d --- /dev/null +++ b/dot_config/fish/functions/laid.fish @@ -0,0 +1,4 @@ +function laid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_L_OPTIONS' --description 'alias laid eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_L_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_L_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lc.fish b/dot_config/fish/functions/lc.fish new file mode 100644 index 0000000..40bfaaf --- /dev/null +++ b/dot_config/fish/functions/lc.fish @@ -0,0 +1,4 @@ +function lc --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LC_OPTIONS' --description 'alias lc eza $EZA_STANDARD_OPTIONS $EZA_LC_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LC_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lca.fish b/dot_config/fish/functions/lca.fish new file mode 100644 index 0000000..790361a --- /dev/null +++ b/dot_config/fish/functions/lca.fish @@ -0,0 +1,4 @@ +function lca --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_LC_OPTIONS' --description 'alias lca eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_LC_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_LC_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lcaa.fish b/dot_config/fish/functions/lcaa.fish new file mode 100644 index 0000000..01bf276 --- /dev/null +++ b/dot_config/fish/functions/lcaa.fish @@ -0,0 +1,4 @@ +function lcaa --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAA_OPTIONS $EZA_LC_OPTIONS' --description 'alias lcaa eza $EZA_STANDARD_OPTIONS $EZA_LAA_OPTIONS $EZA_LC_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAA_OPTIONS $EZA_LC_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lcaad.fish b/dot_config/fish/functions/lcaad.fish new file mode 100644 index 0000000..fdc5c00 --- /dev/null +++ b/dot_config/fish/functions/lcaad.fish @@ -0,0 +1,4 @@ +function lcaad --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_LC_OPTIONS' --description 'alias lcaad eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_LC_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_LC_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lcaai.fish b/dot_config/fish/functions/lcaai.fish new file mode 100644 index 0000000..9795ae4 --- /dev/null +++ b/dot_config/fish/functions/lcaai.fish @@ -0,0 +1,4 @@ +function lcaai --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_LC_OPTIONS' --description 'alias lcaai eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_LC_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_LC_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lcaaid.fish b/dot_config/fish/functions/lcaaid.fish new file mode 100644 index 0000000..5f92bc1 --- /dev/null +++ b/dot_config/fish/functions/lcaaid.fish @@ -0,0 +1,4 @@ +function lcaaid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_LC_OPTIONS' --description 'alias lcaaid eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_LC_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_LC_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lcad.fish b/dot_config/fish/functions/lcad.fish new file mode 100644 index 0000000..0437cbc --- /dev/null +++ b/dot_config/fish/functions/lcad.fish @@ -0,0 +1,4 @@ +function lcad --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_LC_OPTIONS' --description 'alias lcad eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_LC_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_LC_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lcai.fish b/dot_config/fish/functions/lcai.fish new file mode 100644 index 0000000..b01f565 --- /dev/null +++ b/dot_config/fish/functions/lcai.fish @@ -0,0 +1,4 @@ +function lcai --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_LC_OPTIONS' --description 'alias lcai eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_LC_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_LC_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lcaid.fish b/dot_config/fish/functions/lcaid.fish new file mode 100644 index 0000000..ecd3049 --- /dev/null +++ b/dot_config/fish/functions/lcaid.fish @@ -0,0 +1,4 @@ +function lcaid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_LC_OPTIONS' --description 'alias lcaid eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_LC_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_LC_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lcd.fish b/dot_config/fish/functions/lcd.fish new file mode 100644 index 0000000..b70e118 --- /dev/null +++ b/dot_config/fish/functions/lcd.fish @@ -0,0 +1,4 @@ +function lcd --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_LC_OPTIONS' --description 'alias lcd eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_LC_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_LC_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lci.fish b/dot_config/fish/functions/lci.fish new file mode 100644 index 0000000..a256365 --- /dev/null +++ b/dot_config/fish/functions/lci.fish @@ -0,0 +1,4 @@ +function lci --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_LC_OPTIONS' --description 'alias lci eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_LC_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_LC_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lcid.fish b/dot_config/fish/functions/lcid.fish new file mode 100644 index 0000000..d4f9037 --- /dev/null +++ b/dot_config/fish/functions/lcid.fish @@ -0,0 +1,4 @@ +function lcid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_LC_OPTIONS' --description 'alias lcid eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_LC_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_LC_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/ld.fish b/dot_config/fish/functions/ld.fish new file mode 100644 index 0000000..98d5cff --- /dev/null +++ b/dot_config/fish/functions/ld.fish @@ -0,0 +1,4 @@ +function ld --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_L_OPTIONS' --description 'alias ld eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_L_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_L_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/le.fish b/dot_config/fish/functions/le.fish new file mode 100644 index 0000000..5466d6d --- /dev/null +++ b/dot_config/fish/functions/le.fish @@ -0,0 +1,4 @@ +function le --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LE_OPTIONS' --description 'alias le eza $EZA_STANDARD_OPTIONS $EZA_LE_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LE_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lea.fish b/dot_config/fish/functions/lea.fish new file mode 100644 index 0000000..e420c97 --- /dev/null +++ b/dot_config/fish/functions/lea.fish @@ -0,0 +1,4 @@ +function lea --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_LE_OPTIONS' --description 'alias lea eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_LE_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_LE_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/leaa.fish b/dot_config/fish/functions/leaa.fish new file mode 100644 index 0000000..0efd6a4 --- /dev/null +++ b/dot_config/fish/functions/leaa.fish @@ -0,0 +1,4 @@ +function leaa --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAA_OPTIONS $EZA_LE_OPTIONS' --description 'alias leaa eza $EZA_STANDARD_OPTIONS $EZA_LAA_OPTIONS $EZA_LE_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAA_OPTIONS $EZA_LE_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/leaad.fish b/dot_config/fish/functions/leaad.fish new file mode 100644 index 0000000..97c11de --- /dev/null +++ b/dot_config/fish/functions/leaad.fish @@ -0,0 +1,4 @@ +function leaad --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_LE_OPTIONS' --description 'alias leaad eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_LE_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_LE_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/leaai.fish b/dot_config/fish/functions/leaai.fish new file mode 100644 index 0000000..165b450 --- /dev/null +++ b/dot_config/fish/functions/leaai.fish @@ -0,0 +1,4 @@ +function leaai --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_LE_OPTIONS' --description 'alias leaai eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_LE_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_LE_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/leaaid.fish b/dot_config/fish/functions/leaaid.fish new file mode 100644 index 0000000..bfd8ba8 --- /dev/null +++ b/dot_config/fish/functions/leaaid.fish @@ -0,0 +1,4 @@ +function leaaid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_LE_OPTIONS' --description 'alias leaaid eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_LE_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_LE_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lead.fish b/dot_config/fish/functions/lead.fish new file mode 100644 index 0000000..634a16d --- /dev/null +++ b/dot_config/fish/functions/lead.fish @@ -0,0 +1,4 @@ +function lead --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_LE_OPTIONS' --description 'alias lead eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_LE_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_LE_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/leai.fish b/dot_config/fish/functions/leai.fish new file mode 100644 index 0000000..26333e5 --- /dev/null +++ b/dot_config/fish/functions/leai.fish @@ -0,0 +1,4 @@ +function leai --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_LE_OPTIONS' --description 'alias leai eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_LE_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_LE_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/leaid.fish b/dot_config/fish/functions/leaid.fish new file mode 100644 index 0000000..b98bd10 --- /dev/null +++ b/dot_config/fish/functions/leaid.fish @@ -0,0 +1,4 @@ +function leaid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_LE_OPTIONS' --description 'alias leaid eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_LE_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_LE_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/led.fish b/dot_config/fish/functions/led.fish new file mode 100644 index 0000000..c95e800 --- /dev/null +++ b/dot_config/fish/functions/led.fish @@ -0,0 +1,4 @@ +function led --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_LE_OPTIONS' --description 'alias led eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_LE_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_LE_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lei.fish b/dot_config/fish/functions/lei.fish new file mode 100644 index 0000000..85d12fc --- /dev/null +++ b/dot_config/fish/functions/lei.fish @@ -0,0 +1,4 @@ +function lei --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_LE_OPTIONS' --description 'alias lei eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_LE_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_LE_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/leid.fish b/dot_config/fish/functions/leid.fish new file mode 100644 index 0000000..3e7ac68 --- /dev/null +++ b/dot_config/fish/functions/leid.fish @@ -0,0 +1,4 @@ +function leid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_LE_OPTIONS' --description 'alias leid eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_LE_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_LE_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lg.fish b/dot_config/fish/functions/lg.fish new file mode 100644 index 0000000..27afc08 --- /dev/null +++ b/dot_config/fish/functions/lg.fish @@ -0,0 +1,4 @@ +function lg --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LG_OPTIONS' --description 'alias lg eza $EZA_STANDARD_OPTIONS $EZA_LG_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LG_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lga.fish b/dot_config/fish/functions/lga.fish new file mode 100644 index 0000000..787a627 --- /dev/null +++ b/dot_config/fish/functions/lga.fish @@ -0,0 +1,4 @@ +function lga --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_LG_OPTIONS' --description 'alias lga eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_LG_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_LG_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lgaa.fish b/dot_config/fish/functions/lgaa.fish new file mode 100644 index 0000000..f60bc8d --- /dev/null +++ b/dot_config/fish/functions/lgaa.fish @@ -0,0 +1,4 @@ +function lgaa --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAA_OPTIONS $EZA_LG_OPTIONS' --description 'alias lgaa eza $EZA_STANDARD_OPTIONS $EZA_LAA_OPTIONS $EZA_LG_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAA_OPTIONS $EZA_LG_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lgaad.fish b/dot_config/fish/functions/lgaad.fish new file mode 100644 index 0000000..493954d --- /dev/null +++ b/dot_config/fish/functions/lgaad.fish @@ -0,0 +1,4 @@ +function lgaad --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_LG_OPTIONS' --description 'alias lgaad eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_LG_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_LG_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lgaai.fish b/dot_config/fish/functions/lgaai.fish new file mode 100644 index 0000000..53e5cd6 --- /dev/null +++ b/dot_config/fish/functions/lgaai.fish @@ -0,0 +1,4 @@ +function lgaai --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_LG_OPTIONS' --description 'alias lgaai eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_LG_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_LG_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lgaaid.fish b/dot_config/fish/functions/lgaaid.fish new file mode 100644 index 0000000..413f7fc --- /dev/null +++ b/dot_config/fish/functions/lgaaid.fish @@ -0,0 +1,4 @@ +function lgaaid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_LG_OPTIONS' --description 'alias lgaaid eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_LG_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_LG_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lgad.fish b/dot_config/fish/functions/lgad.fish new file mode 100644 index 0000000..7b83594 --- /dev/null +++ b/dot_config/fish/functions/lgad.fish @@ -0,0 +1,4 @@ +function lgad --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_LG_OPTIONS' --description 'alias lgad eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_LG_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_LG_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lgai.fish b/dot_config/fish/functions/lgai.fish new file mode 100644 index 0000000..abbe1fd --- /dev/null +++ b/dot_config/fish/functions/lgai.fish @@ -0,0 +1,4 @@ +function lgai --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_LG_OPTIONS' --description 'alias lgai eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_LG_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_LG_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lgaid.fish b/dot_config/fish/functions/lgaid.fish new file mode 100644 index 0000000..e0dd347 --- /dev/null +++ b/dot_config/fish/functions/lgaid.fish @@ -0,0 +1,4 @@ +function lgaid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_LG_OPTIONS' --description 'alias lgaid eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_LG_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_LG_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lgd.fish b/dot_config/fish/functions/lgd.fish new file mode 100644 index 0000000..6ec6772 --- /dev/null +++ b/dot_config/fish/functions/lgd.fish @@ -0,0 +1,4 @@ +function lgd --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_LG_OPTIONS' --description 'alias lgd eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_LG_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_LG_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lgi.fish b/dot_config/fish/functions/lgi.fish new file mode 100644 index 0000000..f1fcde2 --- /dev/null +++ b/dot_config/fish/functions/lgi.fish @@ -0,0 +1,4 @@ +function lgi --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_LG_OPTIONS' --description 'alias lgi eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_LG_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_LG_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lgid.fish b/dot_config/fish/functions/lgid.fish new file mode 100644 index 0000000..9cd0818 --- /dev/null +++ b/dot_config/fish/functions/lgid.fish @@ -0,0 +1,4 @@ +function lgid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_LG_OPTIONS' --description 'alias lgid eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_LG_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_LG_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/li.fish b/dot_config/fish/functions/li.fish new file mode 100644 index 0000000..b72a072 --- /dev/null +++ b/dot_config/fish/functions/li.fish @@ -0,0 +1,4 @@ +function li --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_L_OPTIONS' --description 'alias li eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_L_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_L_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lid.fish b/dot_config/fish/functions/lid.fish new file mode 100644 index 0000000..9af6102 --- /dev/null +++ b/dot_config/fish/functions/lid.fish @@ -0,0 +1,4 @@ +function lid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_L_OPTIONS' --description 'alias lid eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_L_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_L_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/ll.fish b/dot_config/fish/functions/ll.fish new file mode 100644 index 0000000..80df346 --- /dev/null +++ b/dot_config/fish/functions/ll.fish @@ -0,0 +1,4 @@ +function ll --wraps=eza_git --description 'alias ll eza_git' + eza_git $argv + +end diff --git a/dot_config/fish/functions/lla.fish b/dot_config/fish/functions/lla.fish new file mode 100644 index 0000000..c21107e --- /dev/null +++ b/dot_config/fish/functions/lla.fish @@ -0,0 +1,4 @@ +function lla --wraps='eza_git $EZA_LA_OPTIONS' --description 'alias lla eza_git $EZA_LA_OPTIONS' + eza_git $EZA_LA_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/llaa.fish b/dot_config/fish/functions/llaa.fish new file mode 100644 index 0000000..f31e123 --- /dev/null +++ b/dot_config/fish/functions/llaa.fish @@ -0,0 +1,4 @@ +function llaa --wraps='eza_git $EZA_LAA_OPTIONS' --description 'alias llaa eza_git $EZA_LAA_OPTIONS' + eza_git $EZA_LAA_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/llaad.fish b/dot_config/fish/functions/llaad.fish new file mode 100644 index 0000000..48bc72d --- /dev/null +++ b/dot_config/fish/functions/llaad.fish @@ -0,0 +1,4 @@ +function llaad --wraps='eza_git $EZA_LAAD_OPTIONS' --description 'alias llaad eza_git $EZA_LAAD_OPTIONS' + eza_git $EZA_LAAD_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/llaai.fish b/dot_config/fish/functions/llaai.fish new file mode 100644 index 0000000..4fe7d9d --- /dev/null +++ b/dot_config/fish/functions/llaai.fish @@ -0,0 +1,4 @@ +function llaai --wraps='eza_git $EZA_LAAI_OPTIONS' --description 'alias llaai eza_git $EZA_LAAI_OPTIONS' + eza_git $EZA_LAAI_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/llaaid.fish b/dot_config/fish/functions/llaaid.fish new file mode 100644 index 0000000..d207f82 --- /dev/null +++ b/dot_config/fish/functions/llaaid.fish @@ -0,0 +1,4 @@ +function llaaid --wraps='eza_git $EZA_LAAID_OPTIONS' --description 'alias llaaid eza_git $EZA_LAAID_OPTIONS' + eza_git $EZA_LAAID_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/llad.fish b/dot_config/fish/functions/llad.fish new file mode 100644 index 0000000..f263797 --- /dev/null +++ b/dot_config/fish/functions/llad.fish @@ -0,0 +1,4 @@ +function llad --wraps='eza_git $EZA_LAD_OPTIONS' --description 'alias llad eza_git $EZA_LAD_OPTIONS' + eza_git $EZA_LAD_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/llai.fish b/dot_config/fish/functions/llai.fish new file mode 100644 index 0000000..a2fd140 --- /dev/null +++ b/dot_config/fish/functions/llai.fish @@ -0,0 +1,4 @@ +function llai --wraps='eza_git $EZA_LAI_OPTIONS' --description 'alias llai eza_git $EZA_LAI_OPTIONS' + eza_git $EZA_LAI_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/llaid.fish b/dot_config/fish/functions/llaid.fish new file mode 100644 index 0000000..81539d7 --- /dev/null +++ b/dot_config/fish/functions/llaid.fish @@ -0,0 +1,4 @@ +function llaid --wraps='eza_git $EZA_LAID_OPTIONS' --description 'alias llaid eza_git $EZA_LAID_OPTIONS' + eza_git $EZA_LAID_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lld.fish b/dot_config/fish/functions/lld.fish new file mode 100644 index 0000000..ff35776 --- /dev/null +++ b/dot_config/fish/functions/lld.fish @@ -0,0 +1,4 @@ +function lld --wraps='eza_git $EZA_LD_OPTIONS' --description 'alias lld eza_git $EZA_LD_OPTIONS' + eza_git $EZA_LD_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lli.fish b/dot_config/fish/functions/lli.fish new file mode 100644 index 0000000..7ce50c8 --- /dev/null +++ b/dot_config/fish/functions/lli.fish @@ -0,0 +1,4 @@ +function lli --wraps='eza_git $EZA_LI_OPTIONS' --description 'alias lli eza_git $EZA_LI_OPTIONS' + eza_git $EZA_LI_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/llid.fish b/dot_config/fish/functions/llid.fish new file mode 100644 index 0000000..c5ac800 --- /dev/null +++ b/dot_config/fish/functions/llid.fish @@ -0,0 +1,4 @@ +function llid --wraps='eza_git $EZA_LID_OPTIONS' --description 'alias llid eza_git $EZA_LID_OPTIONS' + eza_git $EZA_LID_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lo.fish b/dot_config/fish/functions/lo.fish new file mode 100644 index 0000000..fd14a97 --- /dev/null +++ b/dot_config/fish/functions/lo.fish @@ -0,0 +1,4 @@ +function lo --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LO_OPTIONS' --description 'alias lo eza $EZA_STANDARD_OPTIONS $EZA_LO_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LO_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/loa.fish b/dot_config/fish/functions/loa.fish new file mode 100644 index 0000000..2f04e5f --- /dev/null +++ b/dot_config/fish/functions/loa.fish @@ -0,0 +1,4 @@ +function loa --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_LO_OPTIONS' --description 'alias loa eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_LO_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_LO_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/loaa.fish b/dot_config/fish/functions/loaa.fish new file mode 100644 index 0000000..8aab5af --- /dev/null +++ b/dot_config/fish/functions/loaa.fish @@ -0,0 +1,4 @@ +function loaa --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAA_OPTIONS $EZA_LO_OPTIONS' --description 'alias loaa eza $EZA_STANDARD_OPTIONS $EZA_LAA_OPTIONS $EZA_LO_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAA_OPTIONS $EZA_LO_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/loaad.fish b/dot_config/fish/functions/loaad.fish new file mode 100644 index 0000000..c447ca4 --- /dev/null +++ b/dot_config/fish/functions/loaad.fish @@ -0,0 +1,4 @@ +function loaad --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_LO_OPTIONS' --description 'alias loaad eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_LO_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_LO_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/loaai.fish b/dot_config/fish/functions/loaai.fish new file mode 100644 index 0000000..bc97184 --- /dev/null +++ b/dot_config/fish/functions/loaai.fish @@ -0,0 +1,4 @@ +function loaai --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_LO_OPTIONS' --description 'alias loaai eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_LO_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_LO_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/loaaid.fish b/dot_config/fish/functions/loaaid.fish new file mode 100644 index 0000000..140ae18 --- /dev/null +++ b/dot_config/fish/functions/loaaid.fish @@ -0,0 +1,4 @@ +function loaaid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_LO_OPTIONS' --description 'alias loaaid eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_LO_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_LO_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/load.fish b/dot_config/fish/functions/load.fish new file mode 100644 index 0000000..a31d878 --- /dev/null +++ b/dot_config/fish/functions/load.fish @@ -0,0 +1,4 @@ +function load --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_LO_OPTIONS' --description 'alias load eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_LO_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_LO_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/loai.fish b/dot_config/fish/functions/loai.fish new file mode 100644 index 0000000..ee79219 --- /dev/null +++ b/dot_config/fish/functions/loai.fish @@ -0,0 +1,4 @@ +function loai --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_LO_OPTIONS' --description 'alias loai eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_LO_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_LO_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/loaid.fish b/dot_config/fish/functions/loaid.fish new file mode 100644 index 0000000..2e623b6 --- /dev/null +++ b/dot_config/fish/functions/loaid.fish @@ -0,0 +1,4 @@ +function loaid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_LO_OPTIONS' --description 'alias loaid eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_LO_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_LO_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lod.fish b/dot_config/fish/functions/lod.fish new file mode 100644 index 0000000..7edecb8 --- /dev/null +++ b/dot_config/fish/functions/lod.fish @@ -0,0 +1,4 @@ +function lod --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_LO_OPTIONS' --description 'alias lod eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_LO_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_LO_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/loi.fish b/dot_config/fish/functions/loi.fish new file mode 100644 index 0000000..bd72cf4 --- /dev/null +++ b/dot_config/fish/functions/loi.fish @@ -0,0 +1,4 @@ +function loi --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_LO_OPTIONS' --description 'alias loi eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_LO_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_LO_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/loid.fish b/dot_config/fish/functions/loid.fish new file mode 100644 index 0000000..6c28297 --- /dev/null +++ b/dot_config/fish/functions/loid.fish @@ -0,0 +1,4 @@ +function loid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_LO_OPTIONS' --description 'alias loid eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_LO_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_LO_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lt.fish b/dot_config/fish/functions/lt.fish new file mode 100644 index 0000000..4a26a9f --- /dev/null +++ b/dot_config/fish/functions/lt.fish @@ -0,0 +1,4 @@ +function lt --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LT_OPTIONS' --description 'alias lt eza $EZA_STANDARD_OPTIONS $EZA_LT_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LT_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lta.fish b/dot_config/fish/functions/lta.fish new file mode 100644 index 0000000..6fbcc3b --- /dev/null +++ b/dot_config/fish/functions/lta.fish @@ -0,0 +1,4 @@ +function lta --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_LT_OPTIONS' --description 'alias lta eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_LT_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LA_OPTIONS $EZA_LT_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/ltaad.fish b/dot_config/fish/functions/ltaad.fish new file mode 100644 index 0000000..2630c40 --- /dev/null +++ b/dot_config/fish/functions/ltaad.fish @@ -0,0 +1,4 @@ +function ltaad --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_LT_OPTIONS' --description 'alias ltaad eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_LT_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAD_OPTIONS $EZA_LT_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/ltaai.fish b/dot_config/fish/functions/ltaai.fish new file mode 100644 index 0000000..40318e1 --- /dev/null +++ b/dot_config/fish/functions/ltaai.fish @@ -0,0 +1,4 @@ +function ltaai --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_LT_OPTIONS' --description 'alias ltaai eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_LT_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAI_OPTIONS $EZA_LT_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/ltaaid.fish b/dot_config/fish/functions/ltaaid.fish new file mode 100644 index 0000000..10ae260 --- /dev/null +++ b/dot_config/fish/functions/ltaaid.fish @@ -0,0 +1,4 @@ +function ltaaid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_LT_OPTIONS' --description 'alias ltaaid eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_LT_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAAID_OPTIONS $EZA_LT_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/ltad.fish b/dot_config/fish/functions/ltad.fish new file mode 100644 index 0000000..a645014 --- /dev/null +++ b/dot_config/fish/functions/ltad.fish @@ -0,0 +1,4 @@ +function ltad --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_LT_OPTIONS' --description 'alias ltad eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_LT_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAD_OPTIONS $EZA_LT_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/ltai.fish b/dot_config/fish/functions/ltai.fish new file mode 100644 index 0000000..1b546b6 --- /dev/null +++ b/dot_config/fish/functions/ltai.fish @@ -0,0 +1,4 @@ +function ltai --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_LT_OPTIONS' --description 'alias ltai eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_LT_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAI_OPTIONS $EZA_LT_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/ltaid.fish b/dot_config/fish/functions/ltaid.fish new file mode 100644 index 0000000..b6c6bc2 --- /dev/null +++ b/dot_config/fish/functions/ltaid.fish @@ -0,0 +1,4 @@ +function ltaid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_LT_OPTIONS' --description 'alias ltaid eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_LT_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LAID_OPTIONS $EZA_LT_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/ltd.fish b/dot_config/fish/functions/ltd.fish new file mode 100644 index 0000000..84875b0 --- /dev/null +++ b/dot_config/fish/functions/ltd.fish @@ -0,0 +1,4 @@ +function ltd --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_LT_OPTIONS' --description 'alias ltd eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_LT_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LD_OPTIONS $EZA_LT_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/lti.fish b/dot_config/fish/functions/lti.fish new file mode 100644 index 0000000..06ecfb3 --- /dev/null +++ b/dot_config/fish/functions/lti.fish @@ -0,0 +1,4 @@ +function lti --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_LT_OPTIONS' --description 'alias lti eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_LT_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LI_OPTIONS $EZA_LT_OPTIONS $argv + +end diff --git a/dot_config/fish/functions/ltid.fish b/dot_config/fish/functions/ltid.fish new file mode 100644 index 0000000..8b9182e --- /dev/null +++ b/dot_config/fish/functions/ltid.fish @@ -0,0 +1,4 @@ +function ltid --wraps='eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_LT_OPTIONS' --description 'alias ltid eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_LT_OPTIONS' + eza $EZA_STANDARD_OPTIONS $EZA_LID_OPTIONS $EZA_LT_OPTIONS $argv + +end