Files
dotfiles/fish/config.fish
2023-01-08 17:37:37 +01:00

129 lines
3.0 KiB
Fish

if status is-interactive
# Commands to run in interactive sessions can go here
end
# *** *** Configuration *** ***
# asdf Version Manager
source /usr/local/opt/asdf/libexec/asdf.fish
# Neovim as default editor
set -U EDITOR nvim
set PATH ~/.dotfiles/bin $PATH
set PATH ~/.dotfiles/private/bin $PATH
# Set .config folder
set --export XDG_CONFIG_HOME "$HOME/.config"
set --export KEYTIMEOUT 1
set --export RIPGREP_CONFIG_PATH $HOME/.ripgreprc
set --export GIT_EDITOR nvim
set --export EDITOR nvim
# FZF
set FD_OPTIONS "--follow --exclude .git --exclude node_modules"
set --export FZF_DEFAULT_COMMAND "git ls-files --cached --others --exclude-standard | fd --hidden --type f --type l $FD_OPTIONS"
set --export FZF_DEFAULT_OPTS "--no-height"
set --export FZF_CTRL_T_COMMAND "$FZF_DEFAULT_COMMAND"
set --export FZF_CTRL_T_OPTS "--preview 'bat --color=always --style=numbers {}' --bind shift-up:preview-page-up,shift-down:preview-page-down"
set --export FZF_CTRL_R_OPTS "--reverse"
set --export FZF_TMUX_OPTS "-p"
set --export FZF_ALT_C_COMMAND "fd --type d $FD_OPTIONS --color=never --hidden"
set --export FZF_ALT_C_OPTS "--preview 'tree -C {} | head -50'"
# Rust
set --export PATH "$HOME/.cargo/bin:$PATH"
# Rancher
set --export --prepend PATH "$HOME/.rd/bin"
# TMUX
if set -q TMUX
set --export NVIM_LISTEN_ADDRESS (tmux show-environment -s NVIM_LISTEN_ADDRESS 2> /dev/null)
else
set --export NVIM_LISTEN_ADDRESS /tmp/nvimsocket
end
set --export PATH $HOME/.tmux/plugins/tmux-nvr/bin $PATH
set --export PATH $HOME/.tmux/plugins/t-smart-tmux-session-manager/bin $PATH
# BasicTex
set --export PATH /Library/TeX/texbin $PATH
# Man
set --export MANPATH "/usr/local/man:$MANPATH"
# Bat
set --export BAT_PAGER "less -R"
# Enable vi-mode key bindings
fish_vi_key_bindings
# (r)everse history search
bind -M viins '^r' 'fzf-history-widget'
# (f)ile / (t)
bind -M viins '^f' 'fzf-file-widget'
# (z) jump
bind -M viins '^z' 'fzf-cd-widget'
# *** *** Aliases *** ***
# Fish
alias reload 'exec fish'
# Folders/Lists
alias ... 'cd ../..'
alias cd.. 'cd ..'
alias ls 'exa --git --group-directories-first --icons'
alias ll 'exa -l --git --group-directories-first --icons'
alias lla 'll -a'
alias mkdir 'mkdir -p'
# Git
alias gst 'git status -sb'
alias gd 'git diff -- . ":(exclude)yarn.lock"'
alias gl 'git pull'
alias glr 'git pull --rebase'
alias glu 'git config user.name "Stefan Imhoff" && git config user.email "stefan@imhoff.name";'
alias glx 'git config user.name "Stefan Imhoff" && git config user.email "stefan.imhoff@xing.com";'
alias gp 'git push'
alias gpf 'git push --force-with-lease'
alias gw 'git whatchanged'
alias gwp 'git whatchanged -p'
alias lg 'lazygit'
# Vim/Neovim
alias v "vim"
if type nvim > /dev/null 2>&1
alias vim 'nvim'
end
# TMUX
alias t 'tmux'
alias mux 'tmuxinator'
alias ms 'mux start'
alias ta 'tmux attach'
# Bat
alias cat 'bat'
# Dotfiles Folder
alias dotfiles 'cd ~/.dotfiles'
# iCloud
alias icloud "cd ~/Library/Mobile\ Documents/com~apple~CloudDocs"
#
# Clear the screen
alias c "clear"
# Prompt
starship init fish | source