1#autoload 2 3local expl 4 5_tags keysyms || return 1 6 7if (( ! $+_keysym_cache )); then 8 local file 9 10 file=( /usr/{include,{{X11R6,openwin},local{,/X11{,R6}}}/include}/X11/keysymdef.h(N) ) 11 12 if (( $#file )); then 13 _keysym_cache=( "${(@)${(@)${(M@)${(@f)$(< $file[1])}:#\#define[ ]##XK_*}#\#define[ ]##XK_}%%[ ]*}" ) 14 else 15 _keysym_cache=( BackSpace Tab Linefeed Clear Return Pause Escape 16 Delete Left Right Up Down Space Home Begin End 17 F{1,2,3,4,5,6,7,8,9,10,11,12} ) 18 fi 19fi 20 21_wanted keysyms expl 'key symbol' \ 22 compadd "$@" -M 'm:{a-z}={A-Z} r:|-=* r:|=*' -a - _keysym_cache 23