2

我想将几个不同的功能映射到 Vim 中的一个键,并让它们一个接一个地发生。

例如,我想将两个不同的函数映射到enter键上——一个在前一行的最后一个字符是大括号时执行某些操作,另一个在前一行的最后一个字符是一个~. 但我希望这些在两个单独的功能中。

这可能吗?

PS 我也愿意寻求一种解决方案,让我在一个映射 enter 的函数中key调用任何其他映射(如果它不成功)。

4

1 回答 1

4

(这应该是一个评论,但我担心它会太长)

因此,通常,您希望将该键映射到对函数的调用。您不能将它映射到两个东西,所以只需将它映射到一个函数,并在该函数内部执行其他两个函数 - 如果前一行的最后一个字符是空格,则一个执行某些操作,如果前一行的最后一个字符是空格,则另一个执行操作上一行的最后一个字符是波浪号。

或者您可以使用映射函数来检查前一行中的最后一个字符是什么,然后根据该特定字符执行 - 执行某些操作的函数。

我真的没有什么可做的了,所以我就把它留在这里:-/


评论后编辑:好吧,这里不赘述,但插件通常只是功能。Vim 没有子程序,只有几种“类型”的函数。插件只是映射到某些键的功能。

现在,我不使用 SuperTab 插件(听说过,但仅此而已),但如果你去想要它,你应该能够首先找出映射到的键是什么(函数名是什么)从那里,该特定功能的作用是什么。它需要什么论据等等......

从那里开始,只需找出如何创建一个包装函数来测试前一个字符并基于该函数执行该插件函数,或者您想到的执行其他操作的函数。

不确定您通过“通用方式”表示什么。

于 2012-05-18T02:24:55.113 回答