我想重新加载我的 neovim
只需几次按键即可配置文件,而不必重新启动应用程序。使用 init.vim
时我能够做到这一点使用以下命令:
nnoremap <leader>sv <cmd>source $MYVIMRC<CR>
$MYVIMRC
正确指向我的配置入口点。问题是我改用
lua
,现在我不能这样做。我已阅读文档并尝试了以下变体但没有成功:util.nnoremap("<leader>sv", "<cmd>luafile $MYVIMRC<CR>")
最后,我找到了一个解决方案:function load(name)
local path = vim.fn.stdpath('config') .. '/lua/' .. name .. '.lua'
dofile(path)
end
load('plugins')
load('config/mapping')
load('lsp/init')
这是错误的,感觉不对。有没有办法做到这一点?我阅读了
vimpeccable
中的示例,但我想查看其他可用选项,因为我不想安装其他插件。我知道
plenary
包括一个重新加载模块的功能,但我不明白如何使用它。一个完整的例子也很好,因为我已经使用了 plenary
在我的配置中。
最佳答案
我是 Neovim 的新用户,所以我想我的解决方案可能不适用于某些边缘情况。
该函数刷新当前缓冲区的模块:
local cfg = vim.fn.stdpath('config')
Flush = function()
local s = vim.api.nvim_buf_get_name(0)
if string.match(s, '^' .. cfg .. '*') == nil then
return
end
s = string.sub(s, 6 + string.len(cfg), -5)
local val = string.gsub(s, '%/', '.')
package.loaded[val] = nil
end
您可以在使用此自动命令写入缓冲区时调用它:autocmd BufWrite *.lua,*vim call v:lua.Flush()
这样,在你执行 :source $MYVIMRC
之后它还将重新加载更改的 Lua 模块。
关于lua - 如何使用快捷方式重新加载用 lua 编写的 Neovim 配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68415300/