用自己的代码覆盖 space,并可能覆盖 space
Override space with own code, and potentially the space
我需要将<Space>
重新映射到运行MyFunction()
(普通模式下),然后根据MyFunction()
的处理结果,应该可以使其正常工作 space,即向右移动光标。如何实现?
示例:光标位于“[ ]”,按 space 会将其更改为“[x]”,光标不会移动。
示例:光标位于 "a word",按 space 向右移动光标(正常模式)。
nnoremap <expr> ...
就是您要找的。
例如如果你的 MyFunc()
return 是一个布尔值,你可以做 :nnoremap <expr> <space> MyFunc()?"\<space>":"\<CR>"
所以这映射 space 到正常 space 或 Enter 取决于 MyFunc()
的结果
你也可以让你的MyFun()
return一个字符串,然后你就可以直接在按键映射中使用了。
阅读 :h :map-expr
了解详情。
我需要将<Space>
重新映射到运行MyFunction()
(普通模式下),然后根据MyFunction()
的处理结果,应该可以使其正常工作 space,即向右移动光标。如何实现?
示例:光标位于“[ ]”,按 space 会将其更改为“[x]”,光标不会移动。
示例:光标位于 "a word",按 space 向右移动光标(正常模式)。
nnoremap <expr> ...
就是您要找的。
例如如果你的 MyFunc()
return 是一个布尔值,你可以做 :nnoremap <expr> <space> MyFunc()?"\<space>":"\<CR>"
所以这映射 space 到正常 space 或 Enter 取决于 MyFunc()
的结果
你也可以让你的MyFun()
return一个字符串,然后你就可以直接在按键映射中使用了。
阅读 :h :map-expr
了解详情。