As a person raised by GUIs, an extra visual confirmation and an extra prompt is a nice touch. I also like when the system says “Oh, is that a directory? No problem, I’ll give you the usual treatment.” You know what I mean?
alias ls='ls --group-directories-first --color=auto -w 120'
alias ll='exa --group-directories-first -l'
alias la='ll -a'
alias lt='ll --tree'
alias cp='cp --recursive --interactive --verbose --reflink=always'
alias mv='mv --interactive --verbose'
# custom pwd
# - replace $HOME with ~
# - make everything before the last '/' green, and everything after white and bold
# - alias to p
alias pwd="pwd | sed 's:$HOME:~:' | sed -E 's:(.*/)([^/]+):\x1b[32m\1\x1b[0m\x1b[1m\2\x1b[0m:'"
alias p="pwd"
# custom cd.
# - prints the new directory after cd'ing.
cd () {
command cd "$@" && p;
}
alias c="cd"
alias '..'='c ..'
alias '...'='c ../..'
# For the '~' alias, we want to use the original cd because printing '~'
# again would be redundant.
alias '~'='command cd'
# custom rm.
# adds a '-r' flag only if there is a single argument and that argument
# is a directory.
# This is because I want the behavior of -I (interactive) to be the default,
# but I also want to have the -r flag available when I need it without being
# prompted for single files.
function rm () {
if [ $# -eq 1 ] && [ -d "$1" ]; then
rm --verbose --interactive=once --recursive "$1";
else
rm --verbose --interactive=once "$@";
fi;
}
# mkdir + cd (created as a function because they run on the current shell,
# which is what we want for cd)
mc () {
mkdir -p -- "$1" && cd -P -- "$1";
}
You can source a script for this directly from github using curl and proccess substitution in order to temporarily have the config when and where you are without making it the default
I do the same with vim.
Edit: here’s the command:
source <(curl -s https://www.raw.githubusercontent.com/sorrybookbroke/bashingmyheadin/master/bashrc
Right? I wonder why this approach isn’t more common.
How do you do this with vim, btw? I’ve looked into it before but haven’t found a fully satisfying answer yet.
I use the command
Replace my name and the repos name with yours, and it’ll work (that repo doesn’t actually exist). It’ll only do a single file though.
Ah thanks! I was thinking of something else actually (how to use bashrc aliases when doing :! inside of vim), but it’s good to know that there are ways to using a vim config on other machines like that