在 Vim 中强制执行关键的 RHS 表达式

问题描述 投票:0回答:1

给定一串输入,可以使用

:normal!
执行它:
:normal! ihello
将进入插入模式并写入文本“hello”。

将键映射到表达式时,我们可以使用类似但不兼容的语法。例如,在 Lua 中,我们可以定义

vim.keymap.set('n', '<c-a>', '<cmd>echo "hello"<cr>')

给定这样一个字符串,

'<cmd>echo "hello"<cr>'
,我们如何在没有键绑定的情况下从 Lua/Vimscript 中命令式执行它,类似于
:normal!
的情况?

vim lua neovim keymapping
1个回答
0
投票

“cmd”符号不是替代品而是替代品。通常,映射的 RHS 的处理方式就像(好吧,几乎)键入一样。然而,任何“cmd”事物都像脚本一样被处理。

因此,您应该删除“cmd”和“cr”并将其传递给

execute
,而不是
normal
。当然,在确保没有留下其他
<key>
符号之后。

© www.soinside.com 2019 - 2024. All rights reserved.