Neovide Lua配置:快捷键中字体大小可变变量失效问题求助
问题原因
你的映射字符串在Lua初始化阶段就完成了拼接,vim.g.font_size的初始值11被硬编码到了映射的Vimscript命令里,后续每次触发快捷键时,执行的都是固定的h11,不会读取实时更新的g:font_size变量。
修复方案
方案1:修改Vimscript映射逻辑
把字体大小的拼接逻辑放在Vimscript命令内部,每次执行时实时读取g:font_size的值:
vim.g.font_size = 11 vim.o.guifont='FantasqueSansMono Nerd Font Mono:h'..vim.g.font_size vim.keymap.set('n', '<C-->', ':let g:font_size = g:font_size - 1 <CR>:let &guifont = "FantasqueSansMono Nerd Font Mono:h" . g:font_size <CR>')
方案2:纯Lua函数实现(更优雅)
用Lua函数封装字体更新逻辑,避免混合Vimscript,还能添加边界控制防止字体过小:
vim.g.font_size = 11 -- 封装字体更新函数 local function update_guifont() vim.o.guifont = string.format('FantasqueSansMono Nerd Font Mono:h%d', vim.g.font_size) end -- 初始化字体 update_guifont() -- 绑定减小字体快捷键 vim.keymap.set('n', '<C-->', function() vim.g.font_size = math.max(vim.g.font_size - 1, 6) -- 限制最小字体为6 update_guifont() end) -- 可选:绑定增大字体快捷键 vim.keymap.set('n', '<C-+>', function() vim.g.font_size = vim.g.font_size + 1 update_guifont() end)
内容的提问来源于stack exchange,提问作者NuclearSquid
相关产品推荐
相关产品推荐

