给定一串输入,可以使用
:normal!
执行它::normal! ihello
将进入插入模式并写入文本“hello”。
将键映射到表达式时,我们可以使用类似但不兼容的语法。例如,在 Lua 中,我们可以定义
vim.keymap.set('n', '<c-a>', '<cmd>echo "hello"<cr>')
给定这样一个字符串,
'<cmd>echo "hello"<cr>'
,我们如何在没有键绑定的情况下从 Lua/Vimscript 中命令式执行它,类似于 :normal!
的情况?
“cmd”符号不是替代品而是替代品。通常,映射的 RHS 的处理方式就像(好吧,几乎)键入一样。然而,任何“cmd”事物都像脚本一样被处理。
因此,您应该删除“cmd”和“cr”并将其传递给
execute
,而不是normal
。当然,在确保没有留下其他<key>
符号之后。