【问题标题】:Why do I get different runtimepaths depending on which API I use?为什么我会根据使用的 API 获得不同的运行时路径?
【发布时间】:2023-02-17 18:04:05
【问题描述】:

我正在尝试运行 Neovim 0.8.1。在 Windows 11 环境中。

我的设置非常简单:

  • 我在 Github 上从 Neovim 的releases page 下载了nvim-win64.zip(0.8.1 版)。
  • 解压缩并将其移动到位于C:\test\nvim-win64 的文件夹中
  • 通过执行C:\test\nvim-win64\bin\nvim.exe启动Neovim

不使用任何自定义配置。

在检查我的运行时路径时,有两种方法可以做到这一点:

  • 使用:set runtimepath?(Vimscript 方式)。这给了我:
runtimepath=~\AppData\Local\nvim,~\AppData\Local\nvim-data\site,C:\test\nvim-win64\share\nvim\runtime,C:\test\nvim-win64\share\nvim\runtime\pack\dist\opt\matchit,C:\test\nvim-win64\lib\nvim,~\AppData\Local\nvim-data\site\after,~\AppData\Local\nvim\after
  • 使用:lua print(vim.inspect(vim.api.nvim_list_runtime_paths()))(Lua 方式)。这给了我:
{ "C:\\test\\nvim-win64\\share\\nvim\\runtime", "C:\\test\\nvim-win64\\share\\nvim\\runtime\\pack\\dist\\opt\\matchit", "C:\\test\\nvim-win64\\lib\\nvim" }

如您所见,似乎使用 Lua 方式我在运行时路径(~\AppData\Local\* 路径)中缺少本地配置目录。

为什么我会看到这种差异?这阻止了我使用 XDG_CONFIG_HOME 来使用我自己通常使用的配置,因为它似乎没有包含在 nvim_list_runtime_paths 列表中,但它确实出现在 :set runtimepath? 中。

【问题讨论】:

    标签: lua neovim


    【解决方案1】:

    Nvim api 函数过滤掉不存在的目录。所以是有区别的。

    【讨论】:

    • 哦,很高兴知道。这让我更进一步。似乎包含~ 的路径被视为无效,因此被nvim_list_runtime_paths 忽略。如果我这样创建我的路径,我设法得到 XDG_CONFIG_HOME 不被忽略:/c/Users/MyUserName/dotfiles(所以不是普通的 Windows 符号 ` and C:`。
    • 但这真的很烦人,因为当我尝试使用一些在vim.fn.stdpath('data') 上安装加壳器的配置时,nvim_list_runtime_paths 会自动忽略它,因此我不能require加壳器。你知道我如何让 Neovim 理解来自 :set runtimepath? 的那些默认 ~ 字符吗?
    • 在 Windows 中创建 %localappdata% vimlua - 所有你想要的东西都放在 %localappdata% vimlua 中 - 如果你有一个文件夹,然后使用独立于操作系统的点:require("folder.lua_source")(查找:%localappdata% vimluaolderlua_source.lua
    • @Koedlt 我不太明白你想做什么。足以确保目录已创建,然后它将出现在列表中(“代字号”已展开)。
    • @Matt 我的问题是那些目录确实存在,但它们并没有出现在列表中。最后我找到了问题的根本原因。我会把它作为答案发布。非常感谢,您的帮助使我走上了正确的道路!
    【解决方案2】:

    我的问题是我的雇主决定将 () 字符放入我的 %USERPROFILE% 环境变量中,这最终破坏了一堆东西(包括我从 nvim_list_runtime_paths 获得的列表)。

    出于多种原因,将这些字符放在 %USERPROFILE% 中不是一个好主意,因此我将所有文件和文件夹移出了 %USERPROFILE% 中的任何(子)目录,并移到了 C: 中。这让我所有的烦恼都烟消云散了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      • 1970-01-01
      • 2019-04-16
      • 2015-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多