From 8d4f2c7ce92fb4233802e073b9ad526adc361c57 Mon Sep 17 00:00:00 2001 From: druckdev Date: Thu, 22 Jul 2021 15:42:45 +0200 Subject: [PATCH] zsh:nameddirs: Pull out of aliases into own file --- .config/zsh/zshrc.d/30-alias.zsh | 26 ---------------------- .config/zsh/zshrc.d/35-nameddirs.zsh | 33 ++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 26 deletions(-) create mode 100644 .config/zsh/zshrc.d/35-nameddirs.zsh diff --git a/.config/zsh/zshrc.d/30-alias.zsh b/.config/zsh/zshrc.d/30-alias.zsh index 1d32b37..cb5725a 100644 --- a/.config/zsh/zshrc.d/30-alias.zsh +++ b/.config/zsh/zshrc.d/30-alias.zsh @@ -145,30 +145,4 @@ (( ! $+commands[man] )) || alias man='nvim-man' -# Named directories - for dir in "$HOME"/[^.]*(/); do - [[ ! ${dir:t} =~ " " ]] || continue - hash -d ${dir:t}="$dir" - done - - hash="$(xdg-user-dir DOCUMENTS 2>/dev/null || echo docs)" - hash="$(basename "$hash")" - if (( $+nameddirs[$hash] )); then - hash -d cheat=~$hash/cheat_sheets - hash -d uni=~$hash/uni - hash -d work=~$hash/work - fi - unset hash - if (( $+nameddirs[projs] )); then - hash -d dot{,s}=~projs/dotfiles - fi - if (( $+nameddirs[uni] )); then - # Use the first match in ~uni/[0-9][0-9]-{So,Wi}Se sorted in descending - # numeric order (most recent semester). The echo is necessary as else - # filename generation will include the wise= and nothing is matched. - # TODO! - hash -d sose="$(echo ~uni/[0-9][0-9]-SoSe(NnOn[1]))" - hash -d wise="$(echo ~uni/[0-9][0-9]-WiSe(NnOn[1]))" - fi - unfunction add_flags is_exec diff --git a/.config/zsh/zshrc.d/35-nameddirs.zsh b/.config/zsh/zshrc.d/35-nameddirs.zsh new file mode 100644 index 0000000..795a616 --- /dev/null +++ b/.config/zsh/zshrc.d/35-nameddirs.zsh @@ -0,0 +1,33 @@ +## Author: druckdev +## Created: 2021-07-21 + +# Children of HOME +for dir in "$HOME"/[^.]*(/); do + [[ ! ${dir:t} =~ " " ]] || continue + hash -d ${dir:t}="$dir" +done + +# Children of documents +hash="$(xdg-user-dir DOCUMENTS 2>/dev/null || echo docs)" +hash="$(basename "$hash")" +if (( $+nameddirs[$hash] )); then + hash -d cheat=~$hash/cheat_sheets + hash -d uni=~$hash/uni + hash -d work=~$hash/work +fi +unset hash + +# Dotfiles +if (( $+nameddirs[projs] )); then + hash -d dot{,s}=~projs/dotfiles +fi + +# Most recent semester folder +if (( $+nameddirs[uni] )); then + # Use the first match in ~uni/[0-9][0-9]-{So,Wi}Se sorted in descending + # numeric order (most recent semester). The echo is necessary as else + # filename generation will include the wise= and nothing is matched. + # TODO! + hash -d sose="$(echo ~uni/[0-9][0-9]-SoSe(NnOn[1]))" + hash -d wise="$(echo ~uni/[0-9][0-9]-WiSe(NnOn[1]))" +fi