【发布时间】:2021-10-12 11:12:06
【问题描述】:
如果我想在 Neovim 中使用 Lua 向下移动光标,我可以使用命令
:lua vim.cmd('normal j')
Vim/Neovim 中的“Ctrl-E”组合将窗口向下滚动一行。如何在 Lua 中使用它? 例如这种方法不起作用:
:lua vim.cmd('normal <C-e>')
如何在 Neovim 中为 Lua 命令提供修饰键序列(Alt-、Ctrl-、Shift-)?
【问题讨论】:
如果我想在 Neovim 中使用 Lua 向下移动光标,我可以使用命令
:lua vim.cmd('normal j')
Vim/Neovim 中的“Ctrl-E”组合将窗口向下滚动一行。如何在 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 和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() 的范围内使用。
【讨论】: