You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

130 lines
3.5 KiB
Cheetah

# ===========================================================================
# Fish config
# ===========================================================================
# requires fisher (https://github.com/jorgebucaran/fisher)
set -gx COLORTERM truecolor
set -gx EDITOR nvim
set -gx LANG fr_FR.UTF-8
set -gx LC_ALL fr_FR.UTF-8
set --universal fish_greeting
# nix
if test -e $HOME/.nix-profile/etc/profile.d/nix.sh
fenv source $HOME/.nix-profile/etc/profile.d/nix.sh
abbr -a nix-update "nix-channel --update && nix-env -u"
function nix-search
nix-env -qa --description ".*$argv.*"
end
end
fish_add_path "$HOME/.local/bin"
abbr -a vi nvim
abbr -a v nvim
abbr -a s subl .
abbr -a r ranger
abbr -a cdd "cd {{ .deploydir }}"
set -x cdd {{ .deploydir }}
# git
abbr -a tiga tig --all
function __git_fetch_after_cd__on_variable_pwd --on-variable PWD
if test -d .git
git fetch
end
end
# fzf
function p --description "cd project"
cd {{ .projectdir }} && _fzf_search_directory
end
# File find: CTRL+F, Git log: CTRL+G
fzf_configure_bindings --directory=\cf --git_log=\cg
set fzf_diff_highlighter diff-so-fancy
# java
abbr -a m mvn
abbr -a mvnp mvn -Dmaven.test.skip -Dmaven.javadoc.skip=true -DskipMunitTests clean package
abbr -a mvni mvn -Dmaven.test.skip -Dmaven.javadoc.skip=true clean install
abbr -a mvnd mvn -Dmaven.test.skip -Dmaven.javadoc.skip=true deploy -P profile-nexus
function mbump
if test (count $argv) -eq 0
echo "Usage: mbump <version> (means -SNAPSHOT) or mbump <version> <kind> (kind is R or S)"
else
if test (count $argv) -gt 1; and test $argv[2] = 'R';
set kind = 'RELEASE'
else
set kind = 'SNAPSHOT'
end
mvn versions:set -DgenerateBackupPoms=false -DnewVersion=$argv[1]-$kind
end
end
alias d "python3 ~/.local/bin/deploy.py {{ .deploydir }}"
# sdkman
if test -f "$__fish_sdkman_init"
function sdk_autoenv --on-variable PWD
if test -f ".sdkmanrc"
sdk env
end
end
end
# node
if test -e "{{ .extra_ca_cert }}"
set -x NODE_EXTRA_CA_CERTS {{ .extra_ca_cert }}
set -x NODE_BUILD_CURL_OPTS --insecure
end
set -Ux fish_user_paths $HOME/.nodenv/bin $fish_user_paths
# python
if test -e "{{ .extra_ca_cert }}"
set -x REQUESTS_CA_BUNDLE {{ .extra_ca_cert }}
end
# tmux
set -x FAVORITE_COMMAND1 "{{ .tmux_favorite1 }}"
set -x FAVORITE_COMMAND2 "{{ .tmux_favorite2 }}"
set -x FAVORITE_COMMAND3 "{{ .tmux_favorite3 }}"
set -x FAVORITE_COMMAND4 "{{ .tmux_favorite4 }}"
# sponge
set sponge_successful_exit_codes 0 130
# extend with specific config
if test -e "$HOME/.config/fish/custom.fish"
source "$HOME/.config/fish/custom.fish"
end
# ranger: Q to cd on exit
function ranger
set tempfile (mktemp -t tmp.XXXXXX)
set command_argument "map Q chain shell echo %d > $tempfile; quitall"
command ranger --cmd="$command_argument" $argv
if test -s $tempfile
set ranger_pwd (cat $tempfile)
if test -n $ranger_pwd -a -d $ranger_pwd
builtin cd -- $ranger_pwd
end
end
command rm -f -- $tempfile
end
# Commands to run in interactive sessions can go here
if status is-interactive
abbr -a rm "rm --interactive --verbose"
abbr -a mv "mv --interactive --verbose"
abbr -a cp "cp --interactive --verbose"
abbr -a ag "ag --ignore-case"
# direnv (https://direnv.net)
if type -q direnv
direnv hook fish | source
end
# run tmux session
#if not set -q TMUX
# tmux attach -t build; or tmux new -s build
#end
end