gpt4 book ai didi

lua - 如何使用快捷方式重新加载用 lua 编写的 Neovim 配置?

转载 作者:行者123 更新时间:2023-12-04 11:32:29 25 4
gpt4 key购买 nike

我想重新加载我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com