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