macOS xterm-256color zsh 1129 views

https://github.com/kutsan/dotfiles

##
# shell bookmarks with fzf
#
# @param {string} [$1] Defined bookmark string.
##
function b() {
    # Bookmarks
    local -A bookmarks=(
        'e' "~/Desktop/"
        'd' "~/Documents/"
        'w' "~/Downloads/"
        'i' "~/Pictures/"
        'p' "~/Projects/"
        'v' "~/Videos/"
    )

    local selected_bookmark

    if [[ "$1" != '' ]] {
        selected_bookmark="${bookmarks[$1]}"
    } else {
        local bookmarks_table

        local key
        foreach key (${(k)bookmarks}) {
            bookmarks_table+="$key ${bookmarks[$key]}\n"
        }

        if (! hash fzf &>/dev/null) {
            echo; echo "error: fzf is required for selection menu."; echo

            return 1
        } else {
            selected_bookmark=$(
                printf "$bookmarks_table" \
                    | fzf \
                        --exact \
                        --height='20%' \
                        --preview='eval ls --almost-all --classify --color=always --group-directories-first --literal $(echo {} | cut --delimiter=" " --fields=2 -) 2>/dev/null' \
                        --preview-window='right:80%' \
                    | cut --delimiter=' ' --fields=2
            )
        }
    }

    if [[ "$selected_bookmark" != '' ]] {
        eval cd "$selected_bookmark"
    } else {
        echo; echo 'error: Could not find any bookmark to jump in.'; echo

        return 1
    }
}

More recordings by kutsan