如何使用 mod 键(Ctrl、Alt、Shift 等)在 Neovim 中编写 Lua 命令

How to write Lua commands in Neovim with mod keys (Ctrl, Alt, Shift etc)

如果我想在 Neovim 中使用 Lua 向下移动光标,我可以使用命令

:lua vim.cmd('normal j')

'Ctrl-E' Vim/Neovim 中的组合向下滚动 window 一行。我如何将它与 Lua 一起使用? 例如,这种方法不起作用:

:lua vim.cmd('normal <C-e>')

如何在 Neovim 中为 Lua 命令提供修饰键序列(Alt-、Ctrl-、Shift-)?

您必须使用 vim.api.nvim_replace_termcodes() 转义键码。参见 the section on that function in nanotee's Nvim Lua Guide and in the Neovim API docs

:lua vim.cmd(vim.api.nvim_replace_termcodes('normal <C-e>'))

在我的配置中,我采纳了 nanotee 的建议并定义了一个辅助函数以避免拼出那个长得离谱的函数名称。

local function t(str)
    return vim.api.nvim_replace_termcodes(str, true, true, true)
end

将您的示例缩短为

vim.cmd(t('normal <C-e>'))

如果在定义了 t() 的范围内使用。