]> git.donarmstrong.com Git - zsh.git/blob - .zsh/zshrc/80_inplacemkdir
add ~/.local/bin to PATH
[zsh.git] / .zsh / zshrc / 80_inplacemkdir
1 # -*- mode: sh -*-
2 # from grml
3 _inplaceMkDirs() {
4     local PATHTOMKDIR
5     if ((REGION_ACTIVE==1)); then
6         local F=$MARK T=$CURSOR
7         if [[ $F -gt $T ]]; then
8             F=${CURSOR}
9             T=${MARK}
10         fi
11         # get marked area from buffer and eliminate whitespace
12         PATHTOMKDIR=${BUFFER[F+1,T]%%[[:space:]]##}
13         PATHTOMKDIR=${PATHTOMKDIR##[[:space:]]##}
14     else
15         local bufwords iword
16         bufwords=(${(z)LBUFFER})
17         iword=${#bufwords}
18         bufwords=(${(z)BUFFER})
19         PATHTOMKDIR="${(Q)bufwords[iword]}"
20     fi
21     [[ -z "${PATHTOMKDIR}" ]] && return 1
22     PATHTOMKDIR=${~PATHTOMKDIR}
23     if [[ -e "${PATHTOMKDIR}" ]]; then
24         zle -M " path already exists, doing nothing"
25     else
26         zle -M "$(mkdir -p -v "${PATHTOMKDIR}")"
27         zle end-of-line
28     fi
29 }
30 zle -N _inplaceMkDirs && bindkey '^xm' _inplaceMkDirs