使用普通命令的缩写扩展

Abbreviation expansion with normal command

任何人都可以向我解释为什么缩写与 :normal 命令一起使用时没有扩展吗?

:iabbrev mw Microwave
:normal! imw 

然后我得到

ms

我错过了什么?

这就是 normal! 所做的。来自 :help :normal

If the [!] is given, mappings will not be used.

如果您使用 :normal imw(不使用 !),它将按您预期的那样工作。

一般来说,您应该始终使用旨在供其他人重复使用的脚本(即插件)中的 :normal!,因为您永远无法确定人们正在使用哪些映射; :normal imw 可能会插入文本 imw,退出 vim,发出 WHOOOOOOP WHOOP 声音,将您的长子献祭给 Justin Bieber,等等。