diff --git a/modules/function_keys/README.md b/modules/function_keys/README.md new file mode 100644 index 00000000..a841002c --- /dev/null +++ b/modules/function_keys/README.md @@ -0,0 +1,11 @@ +# Overview + +`function_keys` enables you to associate `zsh` functions to be called when function keys (F1-F12) are pressed. + +# Usage + +Assuming you want to bind `F9` to `make`, for instance, include the following in you `.zshrc`: + + function fkey_f9 { + make + } \ No newline at end of file diff --git a/modules/function_keys/init.zsh b/modules/function_keys/init.zsh new file mode 100644 index 00000000..4e06fe2d --- /dev/null +++ b/modules/function_keys/init.zsh @@ -0,0 +1,92 @@ +## +# function keys plugin: defines easy hooks you can implement or override +# to respond to F1-F12 keys + +#F1 +eval "f1() {zle push-line;LBUFFER+='fkey_f1';zle accept-line}" +zle -N f1 +bindkey '^[OP' f1 +#F2 +eval "f2() {zle push-line;LBUFFER+='fkey_f2';zle accept-line}" +zle -N f2 +bindkey '^[OQ' f2 +#F3 +eval "f3() {zle push-line;LBUFFER+='fkey_f3';zle accept-line}" +zle -N f3 +bindkey '^[OR' f3 +#F4 +eval "f4() {zle push-line;LBUFFER+='fkey_f4';zle accept-line}" +zle -N f4 +bindkey '^[OS' f4 +#F5 +eval "f5() {zle push-line;LBUFFER+='fkey_f5';zle accept-line}" +zle -N f5 +bindkey '^[[15~' f5 +#F6 +eval "f6() {zle push-line;LBUFFER+='fkey_f6';zle accept-line}" +zle -N f6 +bindkey '^[[17~' f6 +#F7 +eval "f7() {zle push-line;LBUFFER+='fkey_f7';zle accept-line}" +zle -N f7 +bindkey '^[[18~' f7 +#F8 +eval "f8() {zle push-line;LBUFFER+='fkey_f8';zle accept-line}" +zle -N f8 +bindkey '^[[19~' f8 +#F9 +eval "f9() {zle push-line;LBUFFER+='fkey_f9';zle accept-line}" +zle -N f9 +bindkey '^[[20~' f9 +#F10 +eval "f10() {zle push-line;LBUFFER+='fkey_f10';zle accept-line}" +zle -N f10 +bindkey '^[[21~' f10 +#F11 +eval "f11() {zle push-line;LBUFFER+='fkey_f11';zle accept-line}" +zle -N f11 +bindkey '^[[23~' f11 +#F12 +eval "f12() {zle push-line;LBUFFER+='fkey_f12';zle accept-line}" +zle -N f12 +bindkey '^[[24~' f12 + +function fkey_f1 { + _undefined_fkey +} +function fkey_f2 { + _undefined_fkey +} +function fkey_f3 { + _undefined_fkey +} +function fkey_f4 { + _undefined_fkey +} +function fkey_f5 { + _undefined_fkey +} +function fkey_f6 { + _undefined_fkey +} +function fkey_f7 { + _undefined_fkey +} +function fkey_f8 { + _undefined_fkey +} +function fkey_f9 { + _undefined_fkey +} +function fkey_f10 { + _undefined_fkey +} +function fkey_f11 { + _undefined_fkey +} +function fkey_f12 { + _undefined_fkey +} +function _undefined_fkey { + echo "Undefined key action" +}