mirror of https://github.com/kianby/dotfiles
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.
125 lines
3.4 KiB
Cheetah
125 lines
3.4 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
|
|
end
|