zsh-users
 help / color / mirror / code / Atom feed
* merging consecutive cd commands
@ 2001-12-22 23:51 Le Wang
  2002-01-06  5:32 ` Bart Schaefer
  0 siblings, 1 reply; 2+ messages in thread
From: Le Wang @ 2001-12-22 23:51 UTC (permalink / raw)
  To: Zsh users list

Hi,

Is there an option that allows consecutive cd or pushd
 commands to modify the top entry in the cd stack and
command history, instead of adding to it?

e.g.
---------------------------
LE-XP% setopt autopushd
LE-XP% cd temp
LE-XP% cd temp2
LE-XP% dirs
~/temp/temp2 ~/temp ~
LE-XP% history
    1  setopt autopushd
    2  cd temp
    3  cd temp2
    4  dirs
LE-XP%
---------------------------

becomes

---------------------------
LE-XP% setopt autopushd
LE-XP% cd temp
LE-XP% cd temp2
LE-XP% dirs
~/temp/temp2 ~
LE-XP% history
    1  setopt autopushd
    2  cd temp/temp2
    4  dirs
LE-XP%
---------------------------

Thanks
-lw

______________________________________________________ 
Send your holiday cheer with http://greetings.yahoo.ca


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: merging consecutive cd commands
  2001-12-22 23:51 merging consecutive cd commands Le Wang
@ 2002-01-06  5:32 ` Bart Schaefer
  0 siblings, 0 replies; 2+ messages in thread
From: Bart Schaefer @ 2002-01-06  5:32 UTC (permalink / raw)
  To: Le Wang, Zsh users list

On Dec 22,  6:51pm, Le Wang wrote:
} 
} Is there an option that allows consecutive cd or pushd
}  commands to modify the top entry in the cd stack

That would be what happens when autopushd is not set, wouldn't it?

} and command history, instead of adding to it?

There's currently no option or other mechanism that allows altering an
existing history entry (unless you count hist_ignore_space).  We've
talked about making editable the $history association, but haven't come
up with a working solution yet.

} e.g.
} ---------------------------
} LE-XP% setopt autopushd
} LE-XP% cd temp
} LE-XP% cd temp2
} LE-XP% dirs
} ~/temp/temp2 ~
} LE-XP%
} ---------------------------

I suspect that what you mean is that you want autopushd only when NOT
changing to a subdirectory of the current directory.  You can simulate
that with something like this:

    chpwd() {
      # setopt localoptions pushd_silent no_pushd_minus # as needed
      [[ ~0 = ~1/* ]] && popd +1
    }

Or you can manipulate the $dirstack array if you have the zsh/parameter
module loaded:

    chpwd() {
      # setopt localoptions no_ksh_arrays # if needed
      [[ $PWD = $dirstack[1]/* ]] && dirstack[1]=()
    }

Or you can write your own cd and/or chdir functions and do it in those.

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2002-01-06  4:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-12-22 23:51 merging consecutive cd commands Le Wang
2002-01-06  5:32 ` Bart Schaefer

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).