diff options
-rw-r--r-- | doc/ranger.1 | 24 | ||||
-rw-r--r-- | doc/ranger.pod | 20 | ||||
-rwxr-xr-x | ranger.py | 12 |
3 files changed, 31 insertions, 25 deletions
diff --git a/doc/ranger.1 b/doc/ranger.1 index 6cc2b5e4..981aa115 100644 --- a/doc/ranger.1 +++ b/doc/ranger.1 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "RANGER 1" -.TH RANGER 1 "ranger-1.4.3" "09/25/2011" "ranger manual" +.TH RANGER 1 "ranger-1.4.3" "09/28/2011" "ranger manual" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -707,20 +707,22 @@ opening in your current vim session. .Ve .SS "Bash: cd to last path after exit" .IX Subsection "Bash: cd to last path after exit" -This is a bash function (to put in your \fI~/.bashrc\fR) to change the directory -to the last visited one after ranger quits. You can always type \f(CW\*(C`cd \-\*(C'\fR to go -back to the original one. +This is a bash function (for \fI~/.bashrc\fR) to change the directory to the last +visited one after ranger quits. You can always type \f(CW\*(C`cd \-\*(C'\fR to go back to the +original one. .PP -.Vb 9 +.Vb 8 \& function ranger\-cd { -\& tempfile=/tmp/chosendir -\& /usr/bin/ranger \-\-choosedir=$tempfile "$@" -\& if [ \-f $tempfile \-a "$(cat $tempfile)" != "$(pwd | tr \-d "\en")" ] -\& then -\& cd "$(cat $tempfile)" -\& rm $tempfile +\& tempfile=\*(Aq/tmp/chosendir\*(Aq +\& /usr/bin/ranger \-\-choosedir="$tempfile" "${@:\-$(pwd)}" +\& if [ \-f "$tempfile" \-a "$(cat "$tempfile")" != "$(pwd | tr \-d "\en")" ]; then +\& cd "$(cat "$tempfile")" +\& rm "$tempfile" \& fi \& } +\& +\& # This binds Ctrl\-O to ranger\-cd: +\& bind \*(Aq"\eC\-o":"ranger\-cd\eC\-m"\*(Aq .Ve .SH "LICENSE" .IX Header "LICENSE" diff --git a/doc/ranger.pod b/doc/ranger.pod index f6dbdb60..b59f7a40 100644 --- a/doc/ranger.pod +++ b/doc/ranger.pod @@ -778,20 +778,22 @@ opening in your current vim session. =head2 Bash: cd to last path after exit -This is a bash function (to put in your F<~/.bashrc>) to change the directory -to the last visited one after ranger quits. You can always type C<cd -> to go -back to the original one. +This is a bash function (for F<~/.bashrc>) to change the directory to the last +visited one after ranger quits. You can always type C<cd -> to go back to the +original one. function ranger-cd { - tempfile=/tmp/chosendir - /usr/bin/ranger --choosedir=$tempfile "$@" - if [ -f $tempfile -a "$(cat $tempfile)" != "$(pwd | tr -d "\n")" ] - then - cd "$(cat $tempfile)" - rm $tempfile + tempfile='/tmp/chosendir' + /usr/bin/ranger --choosedir="$tempfile" "${@:-$(pwd)}" + if [ -f "$tempfile" -a "$(cat "$tempfile")" != "$(pwd | tr -d "\n")" ]; then + cd "$(cat "$tempfile")" + rm "$tempfile" fi } + # This binds Ctrl-O to ranger-cd: + bind '"\C-o":"ranger-cd\C-m"' + diff --git a/ranger.py b/ranger.py index 53fd8bdb..c4f68923 100755 --- a/ranger.py +++ b/ranger.py @@ -21,11 +21,13 @@ # after you exit ranger. Run it with the command: source ranger ranger """": if [ ! -z "$1" ]; then - $@ --fail-unless-cd && - if [ -z "$XDG_CONFIG_HOME" ]; then - cd "$(grep \^\' ~/.config/ranger/bookmarks | cut -b3-)" - else - cd "$(grep \^\' "$XDG_CONFIG_HOME"/ranger/bookmarks | cut -b3-)" + tempfile='/tmp/chosendir' + ranger="$1" + shift + "$ranger" --choosedir="$tempfile" "${@:-$(pwd)}" + if [ -f "$tempfile" -a "$(cat "$tempfile")" != "$(pwd | tr -d "\n")" ]; then + cd "$(cat "$tempfile")" + rm "$tempfile" fi && return 0 else echo "usage: source path/to/ranger.py path/to/ranger.py" |