]> git.rmz.io Git - dotfiles.git/blobdiff - zsh/lib/ranger.zsh
zsh: add autocd to ranger + aliases + bindkey
[dotfiles.git] / zsh / lib / ranger.zsh
diff --git a/zsh/lib/ranger.zsh b/zsh/lib/ranger.zsh
new file mode 100644 (file)
index 0000000..1fab1ae
--- /dev/null
@@ -0,0 +1,20 @@
+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
+        cd -- "$(cat "$tempfile")"
+    fi
+    rm -f -- "$tempfile"
+}
+
+alias rg='ranger'
+
+ranger_show() { BUFFER="ranger"; zle accept-line; }
+zle -N ranger_show
+bindkey '\er' ranger_show