• PlexSheep@feddit.de
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    What I use to automatically extend stuff like ls .... to ls ../../../..

    function expand-dots() {
        local MATCH
        if [[ $LBUFFER =~ '(^| )\.\.\.+' ]]; then
            LBUFFER=$LBUFFER:fs%\.\.\.%../..%
        fi
    }
    
    function expand-dots-then-expand-or-complete() {
        zle expand-dots
        zle expand-or-complete
    }
    
    function expand-dots-then-accept-line() {
        zle expand-dots
        zle accept-line
    }
    
    zle -N expand-dots
    zle -N expand-dots-then-expand-or-complete
    zle -N expand-dots-then-accept-line
    bindkey '^I' expand-dots-then-expand-or-complete
    bindkey '^M' expand-dots-then-accept-line
    

    (for zsh)