dots/.bashrc

52 lines
1.3 KiB
Bash

# If not running interactively, don't do anything
[[ $- != *i* ]] && return
# Load aliases dynamically
[ -f "$HOME/.aliasrc" ] && source "$HOME/.aliasrc"
# Add ~/.bin to PATH
export PATH=~/.bin:$PATH
# Prompt
bold=$(tput bold)
reset=$(tput sgr0)
get_branch_name() {
git symbolic-ref --quiet --short HEAD 2>/dev/null \
|| git rev-parse --short HEAD 2>/dev/null \
|| echo 'some branch'
}
get_git_info() {
git rev-parse --is-inside-work-tree &>/dev/null || return
echo -e "${1}$(get_branch_name)"
}
PS1='\[\033[38;5;244m\]\[${bold}\]$(get_git_info && echo "\n")\[${reset}\]\u \W ❭ '
# History
export HISTCONTROL=ignoreboth
export HISTSIZE=500000
# Readable man pages
export MANWIDTH=120
# Vim
export EDITOR='vim'
# Fuzzy finder setup
source /usr/share/fzf/*.bash
source /usr/share/fzf/key-bindings.bash
export FZF_DEFAULT_COMMAND='ag --hidden --ignore .git -t -g ""'
export FZF_DEFAULT_OPTS='--height 38% --reverse --border --prompt="❭ " --pointer="❭"'
export FZF_COMPLETION_OPTS='-x'
# Nvm
lazy_load_nvm() {
unset -f nvm node npm npx
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
}
nvm() { lazy_load_nvm nvm $@; }
node() { lazy_load_nvm node $@; }
npm() { lazy_load_nvm npm $@; }
npx() { lazy_load_nvm npx $@; }