如何覆盖标准 "y" 和 "d" 行为
How override the standard "y" and "d" behavior
我想映射一些组合。我已经阅读 :h map
很长时间了,但我仍然不明白如何映射“d”和“y”,以便它们执行以下操作({ }
是可选的):
d{count}{movment} => "_d{count}{movment}
{"reg}<Leader>d{count}{movment} => {"reg}d{count}{movment}
我想让d
真正删除文字,这样熟悉的d3d
、d3w
、diw
等也能真正删除文字。 <Leader>d
切入寄存器 "1
(如果未指定)或切入特定寄存器。
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}
应该照常工作。
我希望它能在视觉模式和正常模式下工作。
这是邪恶的,不应该这样做。只有当你寻求个人“挑战”时才有意义,但在这种情况下,你最好自己想办法。但如果您仍然需要提示,我可能会从 :h 'opfunc'
开始
如果您的 Vim 足够现代 (8.1+),这很容易实现。只需抓住 :h TextYankPost
并从那里做你的事情。
我想映射一些组合。我已经阅读 :h map
很长时间了,但我仍然不明白如何映射“d”和“y”,以便它们执行以下操作({ }
是可选的):
d{count}{movment} => "_d{count}{movment}
{"reg}<Leader>d{count}{movment} => {"reg}d{count}{movment}
我想让d
真正删除文字,这样熟悉的d3d
、d3w
、diw
等也能真正删除文字。 <Leader>d
切入寄存器 "1
(如果未指定)或切入特定寄存器。
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}
应该照常工作。
我希望它能在视觉模式和正常模式下工作。
这是邪恶的,不应该这样做。只有当你寻求个人“挑战”时才有意义,但在这种情况下,你最好自己想办法。但如果您仍然需要提示,我可能会从
开始:h 'opfunc'
如果您的 Vim 足够现代 (8.1+),这很容易实现。只需抓住
:h TextYankPost
并从那里做你的事情。