From 59c3d242d546059cad473f1155ad0e350fe45260 Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Mon, 12 Jul 1999 17:02:52 +0000 Subject: Initial revision --- Functions/Zle/insert-files | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Functions/Zle/insert-files (limited to 'Functions/Zle/insert-files') diff --git a/Functions/Zle/insert-files b/Functions/Zle/insert-files new file mode 100644 index 000000000..10f90ed4a --- /dev/null +++ b/Functions/Zle/insert-files @@ -0,0 +1,42 @@ +# insert-files() { + +# Autoload this function, run `zle -N ' and bind +# to a key. + +# This function allows you type a file pattern, and see the results of the +# expansion at each step. When you hit return, they will be inserted into +# the command line. + +emulate -L zsh +setopt nobadpattern + +local key str files + +files=( *(N) ) +if (( $#files )); then + zle -R "files: ${str}_" "$files[@]" +else + zle -R "files: ${str}_ (failed)" +fi +read -k key +while [[ '#key' -ne '#\\r' && '#key' -ne '#\\n' && + '#key' -ne '#\\C-g' ]]; do + if [[ '#key' -eq '#\\C-h' || '#key' -eq '#\\C-?' ]]; then + [[ -n "$str" ]] && str="$str[1,-2]" + else + str="$str$key" + fi + eval "files=( \${~str}*(N) )" + if (( $#files )); then + zle -R "files: ${str}_" "$files[@]" + else + zle -R "files: ${str}_ (failed)" + fi + read -k key +done +zle -Rc +if [[ '#key' -ne '#\\C-g' && $#files -gt 0 ]]; then + [[ "$LBUFFER[-1]" = ' ' ]] || files=('' "$files[@]") + LBUFFER="$LBUFFER$files " +fi +# } -- cgit 1.4.1