From 488c80bfd47a5b171886bf7e7542c547520bd8b9 Mon Sep 17 00:00:00 2001 From: Balint Gyapjas Date: Tue, 21 Nov 2017 13:59:21 +0100 Subject: [PATCH] ranger-cd plugin added --- plugins/ranger-cd/README.md | 9 +++++++++ plugins/ranger-cd/ranger-cd.plugin.zsh | 13 +++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 plugins/ranger-cd/README.md create mode 100644 plugins/ranger-cd/ranger-cd.plugin.zsh diff --git a/plugins/ranger-cd/README.md b/plugins/ranger-cd/README.md new file mode 100644 index 000000000..7a2b7748b --- /dev/null +++ b/plugins/ranger-cd/README.md @@ -0,0 +1,9 @@ +## ranger-cd + +Compatible with ranger 1.4.2 through 1.7.\* + +After ranger quits, automatically change the current directory of zsh to the +last visited directory in ranger. + +Code comes from a [ranger plugin](https://github.com/ranger/ranger/blob/master/examples/bash_automatic_cd.sh) +for bash, but I find it more convenient to have it as an [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh/) plugin. diff --git a/plugins/ranger-cd/ranger-cd.plugin.zsh b/plugins/ranger-cd/ranger-cd.plugin.zsh new file mode 100644 index 000000000..ebed19854 --- /dev/null +++ b/plugins/ranger-cd/ranger-cd.plugin.zsh @@ -0,0 +1,13 @@ +# functions +function ranger-cd { + tempfile="$(mktemp -t tmp.XXXXXX)" + /usr/bin/ranger --choosedir="$tempfile" "${@:-$(pwd)}" + test -f "$tempfile" && + if [ "$(cat -- "$tempfile")" != "$(echo -n `pwd`)" ]; then + cd -- "$(cat "$tempfile")" + fi + rm -f -- "$tempfile" +} + +# aliases +alias ranger=ranger-cd