#k# complete word from history with menu
bindkey "^X^X" hist-complete
+## complete word from currently visible SCREEN buffer.
+if check_com -c screen ; then
+ _complete_screen_display() {
+ [[ "$TERM" != "screen" ]] && return 1
+
+ local TMPFILE=$(mktemp)
+ local -U -a _screen_display_wordlist
+ trap "rm -f $TMPFILE" EXIT
+
+ screen -X hardcopy $TMPFILE
+ # fill array with contents from screen hardcopy
+ _screen_display_wordlist=( ${(QQ)$(<$TMPFILE)} )
+ # remove PREFIX to be completed from that array
+ _screen_display_wordlist[${_screen_display_wordlist[(i)$PREFIX]}]=""
+ compadd -a _screen_display_wordlist
+ }
+ #k# complete word from currently visible GNU screen buffer
+ bindkey -r "^XS"
+ compdef -k _complete_screen_display complete-word '^XS'
+fi
+
# }}}
# {{{ history
}
fi
+#f5# run command or function in a list of directories
+rundirs() {
+ local d CMD STARTDIR=$PWD
+ CMD=$1; shift
+ ( for d ($@) {cd -q $d && { print cd $d; ${(z)CMD} ; cd -q $STARTDIR }} )
+}
+
# Translate DE<=>EN
# 'translate' looks up fot a word in a file with language-to-language
# translations (field separator should be " : "). A typical wordlist looks