diff --git a/clients/vim/autoload/tabby/keybindings.vim b/clients/vim/autoload/tabby/keybindings.vim index 7042c04..6922603 100644 --- a/clients/vim/autoload/tabby/keybindings.vim +++ b/clients/vim/autoload/tabby/keybindings.vim @@ -12,8 +12,8 @@ function! tabby#keybindings#Map() if !empty(mapcheck('', 'i')) " fallback to the original mapping let tab_maparg = maparg('', 'i', 0, 1) - " warp as function if rhs is expr - let fallback_rhs = tab_maparg.expr ? '{ -> ' . tab_maparg.rhs . ' }' : tab_maparg.rhs + " warp as function if rhs is expr, otherwise encode rhs as json + let fallback_rhs = tab_maparg.expr ? '{ -> ' . tab_maparg.rhs . ' }' : substitute(json_encode(tab_maparg.rhs), '<', '\\<', 'g') " inject let fallback_rhs = substitute(fallback_rhs, '', "\" . get(tab_maparg, 'sid') . '_', 'g') exec 'imap