function code-projects string replace '@' '~/projects/code/' $argv[1] end function git-root set -l result (git root 2>/dev/null) && \ echo $result || echo "" end function bookmarks $EDITOR (string replace ':' '~/resources/bookmarks/' $argv[1]) end function xdg-user-directory switch (string replace '@' '' $argv[1]) case "desktop" echo $XDG_DESKTOP_DIR case "documents" echo $XDG_DOCUMENTS_DIR case "downloads" echo $XDG_DOWNLOAD_DIR case "music" echo $XDG_MUSIC_DIR case "pictures" echo $XDG_PICTURES_DIR case "public" echo $XDG_PUBLICSHARE_DIR case "templates" echo $XDG_TEMPLATES_DIR case "videos" echo $XDG_VIDEOS_DIR end end function bang-bang echo "$history[1]" end function bang-bang-k set -l k (string replace '!!:' '' $argv[1]) set -l arr (string replace -ra ' ' '\n' $history[1]) echo $arr[$k] end function bang-dollar string replace -ra '.* ' '' "$history[1]" end function bang-star string replace -ra ' [^ ]+$' '' "$history[1]" end