From 174251ce062e87d792c4c414c4d60f67ed5bec54 Mon Sep 17 00:00:00 2001 From: Kamen Mladenov Date: Wed, 27 Nov 2024 10:41:40 +0200 Subject: feat(bash): Implement forward directory naviagation --- .bashrc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.bashrc b/.bashrc index 1b72e84..3a99ecc 100644 --- a/.bashrc +++ b/.bashrc @@ -218,11 +218,20 @@ builtin pushd "${1:-$HOME}" >/dev/null } popd() { + ___dirchanged="$PWD" + builtin popd >/dev/null 2>&1 && forward_dirs[${#forward_dirs[@]}]="$___dirchanged" || builtin popd +1 + } + # Huge thanks to: https://tldp.org/LDP/abs/html/arrays.html#EMPTYARRAY + repushd() { ___dirchanged="y" - builtin popd >/dev/null 2>&1 || builtin popd +1 + [ "${#forward_dirs[@]}" -eq 0 ] && echo "bash: repushd: forward directory stack empty" && return 1 + + builtin pushd "${forward_dirs[${#forward_dirs[@]}-1]:-$HOME}" >/dev/null + unset forward_dirs[${#forward_dirs[@]}-1] } alias cd="pushd" # change directory alias bd="popd" # back directory + alias fd="repushd" # }}} # Processes {{{ -- cgit v1.2.3