如何在 Neovim init.lua 中检测 linux 发行版名称

如何在 Neovim init.lua 中检测 linux 发行版名称

如何在我的 neovim~/.config/nvim/init.lua配置中检测 nvim 正在运行哪个操作系统发行版?我希望在 debian 服务器上和我的 fedora Linux 工作站机器上有不同的 Neovim 配置。

  • vim.loop.os_uname()仅检测“Linux”。
  • 有没有像/etc/os-release文件一样的内置文件?

答案1

我最终以一种笨拙的方式解决了这个问题,但它完成了工作。

只需调用 lsb_release外壳命令获取您的分布信息,然后对案例进行模式匹配

local handle = io.popen("lsb_release -i")
local result
if handle ~= nil then
    local result = handle:read("*a")
    handle:close()
    -- From here, match on whichever distro you're looking to handle
    result:match("Ubuntu") -- e.g. looking to handle Ubuntu
end

*如果您需要处理更一般的情况,此页的答案在检查发行版之前如何验证您的操作系统是否为 Linux。

**我认为从技术上讲 lsb_release 这不能保证安装在您的系统上,但它对我有用。另外,有时我会收到“没有可用的 LSB 模块”错误(即使它继续打印 lsb 信息),但我无法解释或解决。

相关内容