@bruno- I solved the "ESC breaks macros" issue long ago! See: https://github.com/sunaku/.vim/blob/config/plugin/escape.vim