0

我安装了SpaceVim来测试它,但;(分号)不起作用。:nmap ;说“未找到映射”。问题是我找不到它在源中未映射的位置。是否有不同的方法可以重新/取消映射 vim 中的键,我应该如何找到这些键?

4

1 回答 1

1

关于“标准”vim 功能和映射效果之间的区别,这里似乎有些混淆。

注意:我喜欢定制的常规 vim 的原因之一是它迫使我学习真正的 vim 及其哲学,然后在此基础上构建工具。这可能是我的纯粹主义者,但是像 SpaceVim 这样的发行版在你需要它们做一些不同的事情时非常难以看到引擎盖下发生的事情,而 vim 已经为此做好了准备。我写这篇文章是因为我怀疑那些SpaceVim 开始的人没有阅读:help,因此缺乏对基础知识的完整掌握。

标准 vim 键不是映射。n跳转到下一个搜索匹配、J加入、q录制宏、;重复最后一个fFtT——所有这些都在源代码中实现。更改它们的默认行为将需要编辑和重新编译。这就是为什么:normal! ;无论如何都可以工作的原因——它忽略映射并使用源定义。

所以,回答你的问题,:map ;说没有映射,因为没有映射。

注意:我假设 SpaceVim 没有映射;,因为我找不到它所做的文档。

当然,人们总是可以创建映射来掩盖这种行为,但这样做被认为是一种反模式(尤其是在至少没有另一个序列来执行旧行为的情况下)。推理是原来的实际上被认为是有用的,那么为什么要覆盖它呢?

注意:从我看 SpaceVim 的键绑定,SV 做了很多。他们重新映射q了创建宏,要求我输入 2 个额外字符才能访问我最喜欢的功能之一,也是最棒的功能之一!

于 2019-09-08T13:35:18.257 回答