Vimscript - 是否可以重载映射?
Vimscript - Is it possible to overload mappings?
不重新映射,而是保持现有映射不变,但添加额外的功能。例如,重载 hjkl
键除了移动光标之外还会做一些额外的事情。
hjkl
不是映射;它们是 built-in 普通模式命令。
如果您想覆盖它们,您将需要创建自定义映射。例如,每次您按 j
时,此映射将使当前行居中(这几乎没有用,但可以作为示例):
nmap j jzz
请注意,j
现在已完全覆盖正常模式。现在使用原始 j
的唯一方法是删除该映射 definitively:
unmap j
或通过:normal
命令暂时使用原来的j
:
:normal! j
或者,您可以创建一个完全独立的映射,例如:
nmap <Space>j jzz
并随时提供常规 j
和您自定义的 j
(在本例中为 <Space>j
)。尊重 built-in 行为,同时继续扩展它。
不重新映射,而是保持现有映射不变,但添加额外的功能。例如,重载 hjkl
键除了移动光标之外还会做一些额外的事情。
hjkl
不是映射;它们是 built-in 普通模式命令。
如果您想覆盖它们,您将需要创建自定义映射。例如,每次您按 j
时,此映射将使当前行居中(这几乎没有用,但可以作为示例):
nmap j jzz
请注意,j
现在已完全覆盖正常模式。现在使用原始 j
的唯一方法是删除该映射 definitively:
unmap j
或通过:normal
命令暂时使用原来的j
:
:normal! j
或者,您可以创建一个完全独立的映射,例如:
nmap <Space>j jzz
并随时提供常规 j
和您自定义的 j
(在本例中为 <Space>j
)。尊重 built-in 行为,同时继续扩展它。