#!/usr/bin/env bash function show() { if [[ "$#" -ne 1 ]]; then echo "usage: show " >&2 return 1 fi case "$(type -t "$1")" in alias) alias "$1" | bat -pl sh ;; keyword|builtin) help "$1" ;; function) declare -f "$1" | bat -l sh ;; file) local path="$(which "$1")" local real="$(realpath "$path")" [[ "$path" != "$real" ]] && echo "$path" bat "$real" ;; "") echo "$1 doesn't exist" ;; esac } function goto() { if [[ "$#" -ne 1 ]]; then echo "usage: goto " >&2 return 1 fi local path="$(which "$1")" [[ -z "$path" ]] && return 2 local real="$(realpath "$path")" cd "${real%/*}" }