diff options
| author | Kamen Mladenov <kamen@syndamia.com> | 2024-11-27 10:41:40 +0200 |
|---|---|---|
| committer | Kamen Mladenov <kamen@syndamia.com> | 2024-11-27 10:41:40 +0200 |
| commit | 174251ce062e87d792c4c414c4d60f67ed5bec54 (patch) | |
| tree | 04cb09fc939555c70cc98fe3f3deaf04986917c5 | |
| parent | 6baa13f6f8ab74fc935baf11865879bb26eddfd6 (diff) | |
| download | dotfiles-174251ce062e87d792c4c414c4d60f67ed5bec54.tar dotfiles-174251ce062e87d792c4c414c4d60f67ed5bec54.tar.gz dotfiles-174251ce062e87d792c4c414c4d60f67ed5bec54.zip | |
feat(bash): Implement forward directory naviagation
| -rw-r--r-- | .bashrc | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -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 {{{ |
