Vim插件:在插入模式下调用函数会将函数签名插入缓冲区,而不是实际调用函数

Vim插件:在插入模式下调用函数会将函数签名插入缓冲区,而不是实际调用函数,vim,Vim,例如,使用VimOrganizer: *一个 然后,当我按Enter键时,缓冲区中的结果是: *oneorg#tbl#kbd#U cr() 至少对于.vimrc,有不同的模式映射键,例如,imap用于插入模式,nmap用于正常模式。如果使用imap映射某个对象,它需要知道它处于插入模式,并相应地生成命令,例如: :inoremap <F2> <C-R>=expand('%:p:h')<CR> :inoremap=expand('%:p:h') 请参阅

例如,使用VimOrganizer:


*一个

然后,当我按Enter键时,缓冲区中的结果是:


*oneorg#tbl#kbd#U cr()

至少对于.vimrc,有不同的模式映射键,例如,imap用于插入模式,nmap用于正常模式。如果使用imap映射某个对象,它需要知道它处于插入模式,并相应地生成命令,例如:

:inoremap <F2> <C-R>=expand('%:p:h')<CR>
:inoremap=expand('%:p:h')

请参阅我的信息。

看起来您将表达式映射与标准映射混合在一起

org#tbl#kbd_cr()
是一个将击键返回到表达式映射的函数(
:help map expr
17_autopairsrurn
本身就是一个(脚本范围的)映射。要将两者连接起来,请为函数使用中间映射:

:inoremap <expr> <SID>org-mapping org#tbl#kbd_cr()
:imap <Enter> <SID>org-mapping<SNR>17_AutoPairsReturn
:inoremap组织映射组织#tbl#kbd#u cr()
:imap org-mapping17_返回

显示您的映射:
imap
i&@org#tbl#kbd#u cr()17"自动返回
是的,似乎就是这样。为了解决这个问题,我只是用另一个提供相同功能的插件(自动配对)替换了有问题的插件(自动配对)。