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

时间:2013-03-22 19:38:57

标签: vim

例如,使用VimOrganizer:

* one

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

* oneorg#tbl#kbd_cr()

2 个答案:

答案 0 :(得分:2)

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

org#tbl#kbd_cr()是一个将键击返回到表达式映射(:help map-expr)的函数。 <SNR>17_AutoPairsReturn是一个(脚本范围的)映射本身。为了能够连接两者,请使用函数的中间映射:

:inoremap <expr> <SID>org-mapping org#tbl#kbd_cr()
:imap <Enter> <SID>org-mapping<SNR>17_AutoPairsReturn

答案 1 :(得分:0)

至少对于.vimrc,有不同的模式来映射一个键,例如,imap表示插入模式,nmap表示正常模式。如果使用imap映射某些内容,则需要注意它处于插入模式并适当地生成命令,例如:

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

请参阅Mapping keys in Vim了解我的信息。