如何覆盖标准"y"和"d"行为



我想映射一些组合。我已经阅读:h map很长时间了,但我仍然不明白如何映射";d";以及";y";以便它们执行以下操作({ }是可选的(:

d{count}{movment} =>     "_d{count}{movment}
{"reg}<Leader>d{count}{movment} => {"reg}d{count}{movment}

我希望d真正删除文本,这样熟悉的d3dd3wdiw等也会真正删除文本。CCD_ 7切入寄存器CCD_ 8(如果未指定(或切入特定寄存器。

y{count}{movment} =>      y{count}{movment} call my_func()
"reg y{count}{movment} => "reg y{count}{movment}

y相同,但这里y{count}{movment}必须复制并调用我的函数。"reg y{count}{movment}应该照常工作。

我希望它能在视觉和正常模式下工作。

  1. 这是邪恶的,不应该这样做。只有当你寻求个人";挑战";,但在这种情况下,你最好自己想想。但如果你还需要一个提示,我可能会从:h 'opfunc'开始

  2. 如果你的Vim足够现代化(8.1+(,这是很容易实现的。只需抓住:h TextYankPost,然后从那里开始做你的事情。

最新更新