From 51ac318a1294c0cc8a4eb2e5f8c647a2e2b7001f Mon Sep 17 00:00:00 2001 From: "martin f. krafft" Date: Tue, 23 Aug 2022 09:59:11 +0200 Subject: [PATCH] add inplace list --- .zsh/zshrc/80-zle_inplace_list | 37 ++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .zsh/zshrc/80-zle_inplace_list diff --git a/.zsh/zshrc/80-zle_inplace_list b/.zsh/zshrc/80-zle_inplace_list new file mode 100644 index 0000000..dc7753d --- /dev/null +++ b/.zsh/zshrc/80-zle_inplace_list @@ -0,0 +1,37 @@ +# +# Provide a way to list target directory contents while editing ZLE +# +# Copyright © 1994–2017 martin f. krafft +# Released under the terms of the Artistic Licence 2.0 +# +# Source repository: http://git.madduck.net/v/etc/zsh.git +# + +_list_inplace() { + emulate -L zsh + local lastarg + if ((REGION_ACTIVE==1)); then + local F=$MARK T=$CURSOR + if [[ $F -gt $T ]]; then + F=${CURSOR} + T=${MARK} + fi + # get marked area from buffer and eliminate whitespace + lastarg=${BUFFER[F+1,T]%%[[:space:]]##} + lastarg=${pathtoview##[[:space:]]##} + else + local bufwords iword + bufwords=(${(z)LBUFFER}) + iword=${#bufwords} + bufwords=(${(z)BUFFER}) + lastarg="${(Q)bufwords[iword]}" + fi + [[ -z "${lastarg}" ]] && return 1 + ls -l ${~lastarg:h} + zle end-of-line +} +zle -N _list_inplace +bindkey '\el' _list_inplace + +# vim:ft=zsh + -- 2.39.5