Neovim中为带参数的ToggleTerm命令设置快捷键报错求助
解决ToggleTerm快捷键设置报错问题
问题原因
vim.cmd[[...]]执行命令后会返回nil,而vim.keymap.set的第三个参数要求是字符串(命令)或可调用函数,直接传递vim.cmd的返回值(nil)就会触发类型错误。
两种可行解决方案
方案一:直接传递命令字符串
把ToggleTerm命令写成带<CR>的字符串,模拟手动回车执行:vim.keymap.set("n", "<leader>t", ":ToggleTerm direction=vertical size=50 dir=~/Desktop<CR>")方案二:用匿名函数包裹命令
将vim.cmd调用放在匿名函数中,传递函数作为回调:vim.keymap.set("n", "<leader>t", function() vim.cmd[[ToggleTerm direction=vertical size=50 dir=~/Desktop]] end)
两种方法都能正常绑定快捷键,执行<leader>t时会触发指定的ToggleTerm命令。
内容的提问来源于stack exchange,提问作者Harish Rusum
相关产品推荐
相关产品推荐

