diff options
Diffstat (limited to 'examples/bash_automatic_cd.sh')
-rw-r--r-- | examples/bash_automatic_cd.sh | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/examples/bash_automatic_cd.sh b/examples/bash_automatic_cd.sh new file mode 100644 index 00000000..a63280d1 --- /dev/null +++ b/examples/bash_automatic_cd.sh @@ -0,0 +1,19 @@ +# Automatically change the directory in bash after closing ranger +# +# This is a bash function for .bashrc to automatically change the directory to +# the last visited one after ranger quits. +# To undo the effect of this function, you can type "cd -" to return to the +# original directory. + +function ranger-cd { + tempfile='/tmp/chosendir' + /usr/bin/ranger --choosedir="$tempfile" "${@:-$(pwd)}" + test -f "$tempfile" && + if [ "$(cat -- "$tempfile")" != "$(echo -n `pwd`)" ]; then + cd -- "$(cat "$tempfile")" + fi + rm -f -- "$tempfile" +} + +# This binds Ctrl-O to ranger-cd: +bind '"\C-o":"ranger-cd\C-m"' |