使用自己的代码覆盖空间,可能还有空间

时间:2016-06-16 11:38:59

标签: function vim text-editor key-bindings

我需要重新映射<Space>以运行MyFunction()(在正常模式下),然后根据MyFunction()的处理结果,它应该可以正常工作空间,即向右移动光标。如何做到这一点?

Exmaple:光标位于&#34; []&#34;,按空格更改为&#34; [x]&#34;,光标无法移动。

示例:光标位于&#34;单词&#34;,按空格键向右移动光标(正常模式)。

1 个答案:

答案 0 :(得分:1)

nnoremap <expr> ...

正是您要找的。

E.g。如果你的MyFunc()返回一个布尔值,你可以:nnoremap <expr> <space> MyFunc()?"\<space>":"\<CR>"这样就可以将空间映射到普通空格,或者输入取决于MyFunc()的结果

您也可以让MyFun()返回一个字符串,然后直接在键映射中使用它。

请阅读:h :map-expr了解详情。