diff options
author | hut <hut@lavabit.com> | 2010-03-12 21:07:16 +0100 |
---|---|---|
committer | hut <hut@lavabit.com> | 2010-03-12 21:50:54 +0100 |
commit | a8f9cf2c8bcd2432b1b82a68422102a6924864d6 (patch) | |
tree | b99f733a66f76ba3176bd6f6c99eb01fdb2baeb2 /doc/cd-after-exit.txt | |
parent | 5ae6670c39493b72e126148ca21cd5cb8e681c7e (diff) | |
download | ranger-a8f9cf2c8bcd2432b1b82a68422102a6924864d6.tar.gz |
standardized formatting of headings in doc/
Diffstat (limited to 'doc/cd-after-exit.txt')
-rw-r--r-- | doc/cd-after-exit.txt | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/doc/cd-after-exit.txt b/doc/cd-after-exit.txt index 5e54fee0..ee300518 100644 --- a/doc/cd-after-exit.txt +++ b/doc/cd-after-exit.txt @@ -1,6 +1,8 @@ The "cd-after-exit" Feature +=========================== -== Abstract +Abstract +-------- This document explains the troublesome implementation of the "cd-after-exit" feature. @@ -8,7 +10,8 @@ feature. This is written for developers who wonder how it's working. -== Specification +Specification +------------- When the feature is enabled, ranger will attempt to change the directory of the parent shell (from which ranger is run) to the last visited directory @@ -20,7 +23,8 @@ addition of support for csh, ksh, and other shells to those who actually use those shells. -== What's the problem? +What's the problem? +------------------- Shells have several limitations, the implementation could not be done easily because: @@ -33,7 +37,8 @@ of the parent shell at all. which is directly integrated in to the shell and can not be run this way. -== Redirection of streams +Redirection of streams +---------------------- The only way I found is using cd `program` from inside the shell to change the directory to whatever `program` prints to the stdout: @@ -62,7 +67,8 @@ switch which: bash$ cd `ranger --cd-after-exit 3>&1 1>&2 2>&3 3>&-` -== Argument passing +Argument passing +---------------- This works well enough, but there are two remaining problems: @@ -92,7 +98,8 @@ run.sh: cd "`$RANGER --cd-after-exit \"$@\" 3>&1 1>&2 2>&3 3>&-`" -== Put it in a nutshell +Put it in a nutshell +-------------------- I didn't want to have 2 files for the main program and wanted just one file at /usr/bin/ranger. So I used this trick to merge both files into one: @@ -120,7 +127,8 @@ A convenient way of using this feature is adding this line to your bashrc: alias rn='source ranger ranger' -== Open issues +Open issues +----------- Unfortunately there is some redundancy: you have to type the path to ranger twice. I know of no way to fix this, because it is not possible to get the |