widgets can only be called when ZLE is active とは何だったのか - Qiita

tl;dr zle -N してからの bindkey を使え。 きっかけ http://shibayu36.hatenablog.com/entry/2013/10/07/185048 こちらで紹介されている function percol-cdr () { ...