为 Vim 映射片段

为 Vim 映射片段

我正在努力为 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;后者允许更改插件映射而不必调整此映射。

相关内容