if (( ! $+commands[ranger] )); then return 1 fi # Auto cd into rangers directory function ranger { tempfile=$(mktemp /tmp/ranger-dirXXX) /usr/bin/ranger --choosedir="$tempfile" "${@:-$(pwd)}" test -f "$tempfile" && if [ "$(cat -- "$tempfile")" != "$(echo -n `pwd`)" ]; then echo "$(cat "$tempfile")" cd -- "$(cat "$tempfile")" fi rm -f -- "$tempfile" } alias rg='ranger' ranger_show() { BUFFER="ranger"; zle accept-line; } zle -N ranger_show bindkey 'r' ranger_show