]> git.donarmstrong.com Git - zsh.git/blob - .zsh/zshrc/80_inplacemkdir
expand ~ for inplacemkdir
[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     PATHTOMKDIR=${~PATHTOMKDIR}
22     if [[ -e "${PATHTOMKDIR}" ]]; then
23         zle -M " path already exists, doing nothing"
24     else
25         zle -M "$(mkdir -p -v "${PATHTOMKDIR}")"
26         zle end-of-line
27     fi
28 }
29 zle -N _inplaceMkDirs && bindkey '^xm' _inplaceMkDirs