我正在为一种语言编写一个基本的插件,将一些特殊的“单词”\
显示为λ
非常简洁。
但我有一个问题。
我现在有:
imap <buffer> \ λ
但我也希望:
imap <buffer> \\ \
只是为了写一个\
现在的问题是,当我输入\\
时,会被\
取代,然后变为λ
。
如何创建映射,使其不会“触发”每个人?
注意:
当我从花哨的源码转换为正常的源码时,我可以很容易地区分\
应该是λ
和那些应该是正常的\
,因为我知道每个λ
最终必须跟(
一起成为一个真正的lambda。
答案 0 :(得分:4)
您应该使用inoremap
代替imap
,尤其是第二次映射:
inoremap <buffer> \\ \
它完全针对您的问题而设计:它阻止vim在另一个映射中使用先前定义的映射。
实际上,使用几乎总是*noremap
版本的映射命令是一个很好的实践,因为它们可以防止这种问题(在大多数情况下不需要)。在编写一个打算供许多人使用的插件时尤其如此。