zsh: map 'cd -' til popd og 'cd /sti/' til pushd?
Jeg har fornyligt lært at kommandoerne popd og pushd eksistere.
De bygger en stack op med stier som man har bevæget sig igennem, så man kan gå flere trin tilbage i stedet for den ene som 'cd -' tillader, hvilket er ret fedt.
Jeg kunne dog godt tænke mig, hvis jeg i min shell kunne mappe dem over på den almindelige cd kommando, sådan så "cd -" bliver til popd og 'cd /sti' bliver til pushd /sti.
Er det muligt med built-in commands i zsh? Hvis ja, hvordan? :)
De bygger en stack op med stier som man har bevæget sig igennem, så man kan gå flere trin tilbage i stedet for den ene som 'cd -' tillader, hvilket er ret fedt.
Jeg kunne dog godt tænke mig, hvis jeg i min shell kunne mappe dem over på den almindelige cd kommando, sådan så "cd -" bliver til popd og 'cd /sti' bliver til pushd /sti.
Er det muligt med built-in commands i zsh? Hvis ja, hvordan? :)
Kommentarer8
Prøv med
http://shapeshed.com/using_aliases_in_the_linux_shell/
os.
Alias kan ikke håndtere
Kan du ikke bare bruge "cd-"
http://docstore.mik.ua/orelly/unix/upt/ch14_07.htm
os.
Nu var ideen at jeg kunne
Jeg har forsøgt at ændre vanen, det er bare for indøvet til at det er særlig realistisk :/
Er det hurtigere end fasd?
Hvad så med at definere en
- Hvis den kaldes med parametren "-": kald popd
- Ellers kald den originale cd
Udfordringen bliver hvordan man inden fra den nye cd kalder den gamle (og ikke den nye rekursivt). Men det kan sikkert løses.
Man kan kalde den
Man kan kalde den rigtige cd komando fra en cd funktion ved at skrive: command cd
Man kan kalde den
Tak.
Jeg prøvede lige dette hurtigt, ser ud til at virke, men skal måske forfines lidt:
function cd {
if [ $1 = "-" ]
then
popd
else
command cd $1
fi
}