我正在努力为 Vim 设置一些映射。我想要一个插入一行文本的映射。
我已经实现了这个目标:
nnoremap åfox oThe quick brown fox jumps over the lazy dog<Esc>]<Space>j
除了最后一部分,它工作正常。
]<Space>
被映射到创建一个新行而不进入插入模式,然后 j 向下移动一行。此映射来自vim 无障碍插件。
]<Space>
当我一步一步地完成所有操作时,该命令在普通 vim 编辑器中运行良好。
当我将其作为宏执行时,退出插入模式后插入括号时遇到问题,因此我必须再次执行相同的命令。
这里是宏的录制方式。请注意,我按了两次完全相同的组合键 ( ALT+ 9),这是]
我的瑞典键盘上的键。
有没有更安全的方法来实现这一点?
答案1
尽管建议使用:noremap
,因为它使映射不受重新映射和递归的影响,这会对您造成伤害。
为了执行未受损害的]<Space>
映射,您必须:nmap
在这里使用(至少对于尾随部分,但分解这个映射只会使事情变得复杂得多,并且风险很小,因为其余的映射只使用字母和标准<Esc>
和j
命令)。
]Space
是否使用未受损的默认映射或内部目标取决于您<Plug>unimpairedBlankDown
;后者允许更改插件映射而不必调整此映射。