git aliases

This commit is contained in:
2026-06-20 00:49:35 -05:00
parent e638b5b3df
commit ccedba3998
+71 -60
View File
@@ -2,78 +2,89 @@
programs.fish = { programs.fish = {
enable = true; enable = true;
functions.fish_greeting = ""; shellAliases = {
functions.fish_prompt = '' ga = "git add .";
set -l last_pipestatus $pipestatus gc = "git commit -am";
set -lx __fish_last_status $status # Export for __fish_print_pipestatus. gp = "git push";
set -l normal (set_color normal) gpr = "git pull --rebase";
set -q fish_color_status gl = "git pull";
or set -g fish_color_status red };
# Color the prompt differently when we're root functions = {
set -l color_cwd $fish_color_cwd
set -l suffix '>'
if functions -q fish_is_root_user; and fish_is_root_user
if set -q fish_color_cwd_root
set color_cwd $fish_color_cwd_root
end
set suffix '#'
end
# Write pipestatus fish_greeting = "";
# If the status was carried over (if no command is issued or if `set` leaves the status untouched), don't bold it.
set -l bold_flag --bold
set -q __fish_prompt_status_generation; or set -g __fish_prompt_status_generation $status_generation
if test $__fish_prompt_status_generation = $status_generation
set bold_flag
end
set __fish_prompt_status_generation $status_generation
set -l status_color (set_color $fish_color_status)
set -l statusb_color (set_color $bold_flag $fish_color_status)
set -l prompt_status (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus)
echo -n -s (prompt_login)' ' (set_color $color_cwd) (prompt_pwd) $normal (fish_vcs_prompt) $normal " "$prompt_status $suffix " " fish_prompt = ''
''; set -l last_pipestatus $pipestatus
set -lx __fish_last_status $status # Export for __fish_print_pipestatus.
set -l normal (set_color normal)
set -q fish_color_status
or set -g fish_color_status red
functions.prompt_pwd = '' # Color the prompt differently when we're root
set -l options h/help d/dir-length= D/full-length-dirs= set -l color_cwd $fish_color_cwd
argparse -n prompt_pwd $options -- $argv set -l suffix '>'
or return if functions -q fish_is_root_user; and fish_is_root_user
if set -q fish_color_cwd_root
set color_cwd $fish_color_cwd_root
end
set suffix '#'
end
if set -q _flag_help # Write pipestatus
__fish_print_help prompt_pwd # If the status was carried over (if no command is issued or if `set` leaves the status untouched), don't bold it.
return 0 set -l bold_flag --bold
end set -q __fish_prompt_status_generation; or set -g __fish_prompt_status_generation $status_generation
if test $__fish_prompt_status_generation = $status_generation
set bold_flag
end
set __fish_prompt_status_generation $status_generation
set -l status_color (set_color $fish_color_status)
set -l statusb_color (set_color $bold_flag $fish_color_status)
set -l prompt_status (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus)
set -q argv[1] echo -n -s (prompt_login)' ' (set_color $color_cwd) (prompt_pwd) $normal (fish_vcs_prompt) $normal " "$prompt_status $suffix " "
or set argv $PWD '';
set -ql _flag_d prompt_pwd = ''
and set -l fish_prompt_pwd_dir_length $_flag_d set -l options h/help d/dir-length= D/full-length-dirs=
argparse -n prompt_pwd $options -- $argv
or return
set -q fish_prompt_pwd_dir_length if set -q _flag_help
or set -l fish_prompt_pwd_dir_length 1 __fish_print_help prompt_pwd
return 0
end
set -l fulldirs 0 set -q argv[1]
set -ql _flag_D or set argv $PWD
and set -l fish_prompt_pwd_full_dirs $_flag_D
set -q fish_prompt_pwd_full_dirs set -ql _flag_d
or set -l fish_prompt_pwd_full_dirs 1 and set -l fish_prompt_pwd_dir_length $_flag_d
for path in $argv set -q fish_prompt_pwd_dir_length
# Replace $HOME with "~" or set -l fish_prompt_pwd_dir_length 1
set -l realhome (string escape --style=regex -- ~)
set -l tmp (string replace -r '^'"$realhome"'($|/)' '~$1' $path)
set -l full set -l fulldirs 0
set -l all (string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp) set -ql _flag_D
set tmp $all[1] and set -l fish_prompt_pwd_full_dirs $_flag_D
set full $all[2..]
string join / -- (string replace -ar -- '(\.?[^/]{'"100"'})[^/]*/' '$1/' $tmp) $full set -q fish_prompt_pwd_full_dirs
end or set -l fish_prompt_pwd_full_dirs 1
'';
for path in $argv
# Replace $HOME with "~"
set -l realhome (string escape --style=regex -- ~)
set -l tmp (string replace -r '^'"$realhome"'($|/)' '~$1' $path)
set -l full
set -l all (string split -m (math $fish_prompt_pwd_full_dirs - 1) -r / $tmp)
set tmp $all[1]
set full $all[2..]
string join / -- (string replace -ar -- '(\.?[^/]{'"100"'})[^/]*/' '$1/' $tmp) $full
end
'';
};
}; };
} }