Hi, I'm trying to build something like this: function do-something() { zle beginning-of-line zle -U "something" zle end-of-line } zle -N do-something bindkey "^[i]" do-something I assumed the commands are executed sequentially if I press M-i. In fact they are but the strings given to "zle -U" are written after the current widget is executed. So the result is: % this is a test pressing M-i % this is a testsomething Is there a way to flush this data earlier to get a result like: % sometingthis is a test Or is my approach totaly wrong? (This is the first time I use zle) Thanks in advance Pascal