Plugins Vim:用我自己的表达式包装插件映射

Plugins Vim:用我自己的表达式包装插件映射,plugins,configuration,vim,Plugins,Configuration,Vim,我有一个插件,它具有以下映射: :i <CR> <CR><Plug>DiscretionaryEnd :i任意结束 我还想为创建我自己的表达式,该表达式符合原始映射。但是,当我这样做时: :inoremap <expr> <CR> test ? '<CR><Plug>DiscretionaryEnd' : '<Esc>' :inoremap测试?“任意结束“:” CR打印\n

我有一个插件,它具有以下映射:

:i <CR>          <CR><Plug>DiscretionaryEnd
:i任意结束
我还想为
创建我自己的表达式,该表达式符合原始映射。但是,当我这样做时:

:inoremap <expr> <CR> test ? '<CR><Plug>DiscretionaryEnd' : '<Esc>'
:inoremap测试?“任意结束“:”
CR打印
\nDiscreationAryEnd
而不仅仅是
\n
,然后是对插件的
DiscreationAryEnd
函数的委托


:h
说它用于内部映射,所以我可能是弄错了。但我认为有一种方法可以在不深入插件内部的情况下包装插件的行为。我应该怎么做呢?

虽然通常建议这样做,因为这样会使映射不受重新映射和递归的影响,但这是该规则的一个例外

在表达式映射中,映射应用于表达式本身,而不是返回的字符流

:imap <expr> <CR> test ? '<CR><Plug>DiscretionaryEnd' : '<Esc>'
:imap测试?“任意结束“:”